linux工具应用_GVIM

news2024/12/23 19:28:48

gvim

  • 1. introduction
    • 1.1 **gvim的功能(选择用gvim的原因)**
    • 1.2 模式及切换
      • 1.2.1 normal
      • 1.2.2 insert
      • 1.2.3 visual
      • 1.2.4 command
  • 2. gvim配置-vimrc
    • 2.1 什么是vimrc
    • 2.2 配置修改及理解
      • 2.2.1 基本修改
      • 2.2.2 UI 相关配置
      • 2.2.3 编码相关配置
      • 2.3.4 文件相关配置
      • 2.3.5 编辑器相关配置
    • 2.3 快捷键映射
      • 2.3.1 map命令
      • 2.3.2 查看快捷键对应命令
      • 2.3.3 常用键盘符号
      • 2.3.4 取消和查看键盘映射
      • 2.3.5 leader
      • 2.3.6 将按键序列包成function
  • 3. gvim+ctags+taglist实现文件tags访问
    • **3.1 taglist插件**
    • **3.2 插件调用**
    • **3.3 生成tags**
    • **3.4 如何识别未知语言**
    • **3.5 使用**
  • 4. vim脚本

可以在终端使用下面语句给gvim的常用命令设置个别名:

alias g 'gvim'
alias gd 'gvimdiff'

1. introduction

vi、vim、 gvim 的联系与区别

大家可能都听说过vi vim gvim,下面讲解他们之间的联系与区别:

vi功能是最弱的,后来vi被增强加入众多特性,就是vim。

再后来vim加入图形接口(GUI),就产生了gvim。

很多命令从前到后被依次沿用,因此基本操作是类似的。

但是功能最强的是gvim,它的很多特性vim并不支持,vi更不支持。

比如你想让色彩更丰富?把光标闪烁停了?设置独立于终端的字体 …这些只有gvim支持。

1.1 gvim的功能(选择用gvim的原因)

四种模式自由切换;

查找、语法高亮;

查看、编辑、复制、粘贴、删除、替换、保存;

快速跳转(行跳转、以单词为单位跳转、区块/代码块跳转、);

文件跳转;

文件比较;

同时打开多个文件;

Tab显示多个文件;

分屏;

支持正则匹配

1.2 模式及切换

1.2.1 normal

正常模式主要用来浏览和修改文本内容的,一般,打开vim/gvim都是正常模式。在任何模式下,只要按下Esc 键就可以返回正常模式。

1.2.2 insert

插入模式则用来向文本中添加内容的

i: 在光标所在字符前开始输入文字并进入插入模式

a:在光标所在字符后开始输入文字并进入插入模式

o:在光标所在行的下面单独开一新行来输入文字并进入插入模式

s:删除光标所在的字符并进入插入模式

I:在行首开始输入文字并进入插入模式。此行首指第一个非空白字符处。如果行首有空格,则在空格之后输入文字并进入插入模式

A :在行尾开始输入文字并进入插入模式。这个好用,您不必管光标在此行的什麽地方,只要按A 就会在行尾等着您输入文字

O:在光标所在行的上面单独开一新行来输入文字并进入插入模式

S:删除光标所在行并进入插入模式

1.2.3 visual

V(shift+v):行选

鼠标左键选择:

在这里插入图片描述

shift+v后:

在这里插入图片描述

ctrl+v:块选

在这里插入图片描述

1.2.4 command

从normal模式敲个“:”进入命令模式

可以执行各种功能

2. gvim配置-vimrc

通过修改vimrc可以对自己的gvim做一些个性化的配置

2.1 什么是vimrc

​ vimrc 是 Vim 的配置文件, Vim 在启动时会加载 vimrc 文件, 你能想到的几乎所有的配置(包括主题, 快捷键, 插件设置等等), 都可以配置在 vimrc 中, 所以, vimrc 在 Vim 使用过程中有着至关重要的地位. Vim 是极其依赖 vimrc 配置的, 没有经过配置的 Vim 又丑又难用, 但是你如果懂得怎么配置, 就可以把 Vim 变成你想要的样子.

​ 这里要明确一个概念: vimrc 中的大多数配置都是 Vim 命令模式下支持的命令, 都可以在命令模式下使用, 但是在命令模式中使用时, 只针对当前打开的 Vim 实例有效, 关闭了 Vim 之后再次打开, 之前在命令模式下的设置就无效了. 而配置到 vimrc 中, 每次 Vim 启动时都会自动读取并执行, 所以可以自动生效.

如何查找vimrc的位置?

  • gvim打开后,用命令模式“:version”

       system vimrc file: "/etc/vimrc"
         user vimrc file: "$HOME/.vimrc"
     2nd user vimrc file: "~/.vim/vimrc"
          user exrc file: "$HOME/.exrc"
      system gvimrc file: "/etc/gvimrc"
        user gvimrc file: "$HOME/.gvimrc"
    2nd user gvimrc file: "~/.vim/gvimrc"
        system menu file: "$VIMRUNTIME/menu.vim"
      fall-back for $VIM: "/etc"
     f-b for $VIMRUNTIME: "/usr/share/vim/vim74"
    

    通过上述信息可知, vimrc 文件的位置其实非常多, 加载顺序是自上而下, 找到第一个则使用第一个, 后续的不再使用, 如果第一个找不到, 则会依次向下寻找, 直到找到为止.

    $HOME和$VIM可以通过echo查看,我公司用的都是自己用户路径,/home/usr/xxx

或者

  • man vim查看vim信息,这里可以还可以看到vim文档的路径,有问题可以在这里查查文档/usr/share/vim/vim74/doc/*.txt

    FILES
           /usr/share/vim/vim74/doc/*.txt
                          The Vim documentation files.  Use ":help doc-file-list" to get the complete list.
    
           /usr/share/vim/vim74/doc/tags
                          The tags file used for finding information in the documentation files.
    
           /usr/share/vim/vim74/syntax/syntax.vim
                          System wide syntax initializations.
    
           /usr/share/vim/vim74/syntax/*.vim
                          Syntax files for various languages.
    
           /etc/vimrc     System wide Vim initializations.
    
           ~/.vimrc       Your personal Vim initializations.
    
           /etc/gvimrc    System wide gvim initializations.
    
           ~/.gvimrc      Your personal gvim initializations.
    
           /usr/share/vim/vim74/optwin.vim
                          Script used for the ":options" command, a nice way to view and set options.
    
           /usr/share/vim/vim74/menu.vim
                          System wide menu initializations for gvim.
    
           /usr/share/vim/vim74/bugreport.vim
                          Script to generate a bug report.  See ":help bugs".
    
           /usr/share/vim/vim74/filetype.vim
                          Script to detect the type of a file by its name.  See ":help \u2019filetype\u2019".
    
           /usr/share/vim/vim74/scripts.vim
                          Script to detect the type of a file by its contents.  See ":help \u2019filetype\u2019".
    
           /usr/share/vim/vim74/print/*.ps
                          Files used for PostScript printing.
    
           For recent info read the VIM home page:
           <URL:http://www.vim.org/>
    

2.2 配置修改及理解

2.2.1 基本修改

首先第一条要修改的就是: 关闭兼容模式!

Vim 默认是以兼容 Vi 的模式运行的(Vi 是远古时期的 Vim), 在这种模式下, 很多 Vim 的高级特性都无法使用, 所以首先就要关闭兼容模式, 请把这条配置放在你 vimrc 文件的第一行

set nocompatible " 关闭兼容模式

vimrc 中, " 号后面的内容为注释.

修改并保存之后要使之生效, 需要重启 Vim. 还有个更简单的方法, 就是在命令模式下输入下面两个命令中的任意一个:

:source $vim/_vimrc
:source %

大部分情况下, 执行完上面的命令后, vimrc 的修改会立即生效, 但是有些特殊配置执行完这两个命令后不能及时生效, 这时就只能重启 Vim 了. 另外, :source 命令可简写为 :so

2.2.2 UI 相关配置

如果你觉得默认字体不好看, 可以使用如下配置修改字体和字宽

set guifont=Consolas:h14 "这表示使用 Consolas 字体, 字号为 14."
set gfn=Monospace\ 12

颜色:

colorscheme evening
"可选择的颜色配置
$ g /usr/share/vim/vim74/colors/
blue.vim       default.vim    desert.vim     evening.vim    morning.vim    pablo.vim      README.txt     shine.vim      torte.vim      
darkblue.vim   delek.vim      elflord.vim    koehler.vim    murphy.vim     peachpuff.vim  ron.vim        slate.vim      zellner.vim 

另外, 对于一个成熟的 vimer 来说, 界面上那些菜单, 工具栏什么的都是没啥用的, 可以关掉

" 关闭工具栏
set guioptions-=T
" 关闭菜单
set guioptions-=m
" 关闭左侧滚动条
set guioptions-=L
" 关闭右侧滚动条
set guioptions-=r
" 启动时最大化
autocmd GUIEnter * simalt ~x

注意: vimrc 中, 赋值配置的 = 右边最好不要有空格, 有些值加了空格无法识别

2.2.3 编码相关配置

Vim 的编码系统比较混沌, 几乎说不清楚, 总之你按照下面的配置方式就没问题了:

" 设置vim内部编码
set encoding=utf-8
" 设置编辑文件时的编码
set fileencoding=utf-8
" 设置 Vim 能识别的编码
set fileencodings=ucs-bom,utf-8,cp936,gb18030,gb2312,big5,cuc-jp,cuc-kr,latin
" 设置终端模式(非 GUI 模式)下的编码
set termencoding=utf-8
" 防止特殊符号无法显示
set ambiwidth=double
" 解决 console 输出乱码
language messages zh_CN.utf-8

2.3.4 文件相关配置

默认情况下, Vim 在运行期间会生成临时文件和备份文件, 以及修改历史文件(undo文件), 这些文件用处不大, 都是可以关

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1908894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用Conda配置 Stable Diffusion WebUI 1.9.4

用Conda配置 Stable Diffusion WebUI 1.9.4 本文主要讲解: 如何用Conda搭建Stable Diffusion WebUI 1.9.4环境&#xff0c;用Conda的方式安装&#xff0c;不需要单独去安装Cuda了。 1. 安装miniconda https://docs.anaconda.com/free/miniconda/index.html 2. 搭建虚拟环境…

Java设计模式---(创建型模式)工厂、单例、建造者、原型

目录 前言一、工厂模式&#xff08;Factory&#xff09;1.1 工厂方法模式&#xff08;Factory Method&#xff09;1.1.1 普通工厂方法模式1.1.2 多个工厂方法模式1.1.3 静态工厂方法模式 1.2 抽象工厂模式&#xff08;Abstract Factory&#xff09; 二、单例模式&#xff08;Si…

快速掌握AI的最佳途径实践

科技时代&#xff0c;人工智能&#xff08;AI&#xff09;已经成为许多人希望掌握的重要技能。对于普通人来说&#xff0c;如何快速有效地学习AI仍然是一个挑战。本文将详细介绍几种快速掌握AI的途径&#xff0c;并提供具体的操作步骤和资源建议。 前言 AI的普及和应用已经深…

逻辑回归模型(非回归问题,而是分类问题)

目录&#xff1a; 一、Sigmoid函数&#xff1a;二、逻辑回归介绍&#xff1a;三、决策边界四、逻辑回归模型训练过程&#xff1a;1.训练目标&#xff1a;2.梯度下降调整参数&#xff1a; 一、Sigmoid函数&#xff1a; Sigmoid函数是构建逻辑回归模型的重要函数&#xff0c;如下…

【Word】快速对齐目录

目录标题 1. 全选要操作的内容 → 右键 → 段落2. 选则制表位3. 配置制表符4. Tab键即可 1. 全选要操作的内容 → 右键 → 段落 2. 选则制表位 3. 配置制表符 4. Tab键即可

js+spring boot实现简单前后端文件下载功能

jsboot项目实现自定义下载 一、前端页面 1、先导入axios的js包 2、注意axios响应的格式&#xff1a;result.data.真实的数据内容 3、这里请求的url就是你boot项目的getMapping的url&#xff0c;保持一致即可 4、如果想在后端设置文件名&#xff0c;那么后端生成后&#xf…

HackTheBox--BoardLight

BoardLight 测试过程 1 信息收集 NMAP端口扫描 端口扫描开放 22、80 端口 80端口测试 # 添加 boardLight.htb 到hosts文件 echo "10.10.11.11 boardLight.htb" | sudo tee -a /etc/hosts检查网页源代码&#xff0c;发现 board.htb # 添加 board.htb 到 hosts 文…

安卓应用开发学习:腾讯地图SDK应用改进,实现定位、搜索、路线规划功能集成

一、引言 我的上一篇学习日志《安卓应用开发学习&#xff1a;通过腾讯地图SDK实现定位功能》记录了利用腾讯地图SDK实现手机定位功能&#xff0c;并能获取地图中心点的经纬度信息。这之后的几天里&#xff0c;我对《Android App 开发进阶与项目实战》一书第九章的内容深入解读…

Open3D KDtree的建立与使用

目录 一、概述 1.1kd树原理 1.2kd树搜索原理 1.3kd树构建示例 二、常见的领域搜索方式 2.1K近邻搜索&#xff08;K-Nearest Neighbors, KNN Search&#xff09; 2.2半径搜索&#xff08;Radius Search&#xff09; 2.3混合搜索&#xff08;Hybrid Search&#xff09; …

STM32F446RE实现多通道ADC转换功能实现(DMA)

目录 概述 1 软硬件介绍 1.1 软件版本 1.2 ADC引脚介绍 2 STM32Cube配置项目 2.1 配置基本参数 2.2 ADC通道配置 2.3 DMA通道配置 3 项目代码介绍 3.1 自生成代码 3.2 ADC-DMA初始化 3.3 测试函数 3.4 ADC1、ADC2、ADC3轮询采集数据存贮格式 4 测试 源代码下载地…

clickhouse学习笔记(五)SQL操作

目录 一、增 二、删改 三、查询以及各种子句 1、with子句 a、表达式为常量 b、表达式为函数调用 c、表达式为子查询 2、from子句 3、array join子句 a、INNER ARRAY JOIN b、LEFT ARRAY JOIN c、数组的一些函数 groupArray groupUniqArray arrayFlatten splitBy…

小米订单锐减背后的挑战与应对之道

近期&#xff0c;富士康印度子公司Bharat FIH面临高管离职、工厂关闭的困境&#xff0c;其背后原因之一是小米订单的显著下滑&#xff0c;据报道&#xff0c;这一降幅高达70%。这一现象不仅反映了富士康在印度市场的艰难处境&#xff0c;也揭示了小米在全球智能手机市场面临的挑…

Atom CMS v2.0 SQL 注入漏洞(CVE-2022-24223)

前言 概要 CVE-2022-24223 是一个发现于 Atom CMS v2.0 中的 SQL 注入漏洞。该漏洞存在于 /admin/login.php 文件中&#xff0c;通过该文件&#xff0c;攻击者可以在未经身份验证的情况下执行任意的 SQL 命令。 漏洞描述 该漏洞位于 Atom CMS 的管理员登录页面&#xff08;/a…

甄选范文“论区块链技术及应用”,软考高级论文,系统架构设计师论文

论文真题 区块链作为一种分布式记账技术,目前已经被应用到了资产管理、物联网、医疗管理、政务监管等多个领域。从网络层面来讲,区块链是一个对等网络(Peer to Peer, P2P),网络中的节点地位对等,每个节点都保存完整的账本数据,系统的运行不依赖中心化节点,因此避免了中…

跨境电商代购系统与电商平台API结合的化学反应

随着全球化的不断推进和互联网技术的飞速发展&#xff0c;跨境电商已成为国际贸易的重要组成部分。跨境电商代购系统作为连接国内外消费者与商品的桥梁&#xff0c;不仅为消费者提供了更多元化的购物选择&#xff0c;也为商家开辟了更广阔的市场空间。在这一过程中&#xff0c;…

数据结构——顺序表(java实现)

文章目录 顺序表顺序表的定义代码实现&#xff1a;创建一个顺序表的类在顺序表中增加一条新的数据展示顺序表中内容在pos位置处插入一条数据判断顺序表中是否包含指定的数据查找某个数据在顺序表中的位置获取pos位置的元素将pos位置的元素改为value删除顺序表中第一个出现的数据…

搭建基础库~

前言 项目中会用到工具库、函数库以及一些跟框架绑定的组件&#xff0c;如果这些基础模块每个项目都实现一套&#xff0c;维护起来那真的头大&#xff0c;你说呢&#x1f609; 搭建流程 准备工作 创建文件夹myLib、安装Git以及pnpm 目录大概就系这样子&#xff1a; myLib ├…

从零开始做题:好怪哦

题目 给出一个压缩文件 解题 方法1 01Edit打开&#xff0c;发现是个反着的压缩包&#xff08;末尾倒着的PK头&#xff09; import os# 目标目录路径 # target_directory /home/ai001/alpaca-lora# 切换到目标目录 # os.chdir(target_directory)# 打印当前工作目录以确认…

# Redis 入门到精通(一)数据类型(1)

Redis 入门到精通&#xff08;一&#xff09;数据类型&#xff08;1&#xff09; 一 、Redis 入门到精通 基本介绍 1、Redis 基础 ( windows 环境 ) redis 入门数据类型通用命令Jedis 2、Redis 高级 ( linux 环境 ) 持久化redis.conf 配置事务集群 3、Redis 应用 ( linux…

WAIC | 2024年世界人工智能大会“数学与人工智能”学术会议成功举办!

由斯梅尔数学与计算研究院&#xff08;Smale Institue of Mathematics & Computation&#xff09;主办的2024年世界人工智能大会(WAIC)“数学与人工智能”学术会议7月4日在上海世博中心圆满落幕&#xff01;作为全球性高级别学术研讨会&#xff0c;此次会议由华院计算技术&…