爱上vim之快捷键使用技巧与个性化配置

四种模式

模式间的切换

Normal模式下按 v 进入Visual模式,按 v, Esc, y, d 退出回到Normal模式。

Normal模式下按 : 进入Command模式,按 Esc 退出回到Normal模式。

Normal模式下按 i, I, a, A, o, O 进入Insert模式,按 Esc 退出回到Normal模式。

任意其它模式下按 Esc 进入Normal模式。

常用快捷键

Insert模式

Visual模式

可以移动光标,选中区域进行操作:

光标选中区域后按 y 复制,移动到目标位置后再按 p 粘贴

光标选中区域后按 x 删除

Normal模式

 y^ 从行首到光标所在位置之前的字符复制(不包含光标)

 y$ 从光标所在位置到行尾的字符复制(包含光标)

 yy 复制光标所在行的字符

 nyy 复制光标所在行向下的n行字符(包括本行)

 p 在光标所在行的下一行添加新行,粘贴复制的内容

 P 在光标所在行的上一行添加新行,粘贴复制的内容

 x 删除光标所在位置的单个字符

 dw 删除光标所在位置的整个单词(包括该单词后的空格)

 d^ 从行首到光标所在位置之前的字符删除(包含光标到行尾的字符保留)

 d$ 从光标所在位置(包含)到行尾的字符删除(行首到光标前的字符保留)

 dd 删除光标所在行一整行的字符(即该行消失)

 ndd 删除光标所在行向下的n行字符(包括本行)

 u 撤销前一步的操作

 CTRL + u 反撤销

 CTRL + v 可视块操作(常用于行的批量操作,例如一次性删除连续多行的开头注释符号“//”,可Normal模式下按 CTRL + v ,光标一直向下选中每一行的开头“//”,再按 x 即可一次性完成删除)

翻页

 CTRL + u 向前翻半页

 CTRL + d 向后翻半页

 CTRL + b 向前翻一页

 CTRL + f 向后翻一页

移动光标

 - 将光标移动到上一行第一个字符

 + 将光标移动到下一行的第一个字符

 Shift + ^ 将光标移动到本行的行首(在Command模式下,直接输入数字0,效果也是直接到行首)

 Shift + $  将光标移动到本行的行尾

 } 移动到下一个Block(Bock就是以空行分割的区域)

 { 移动到上一个Block

 w 移动到下一个word

G的用法

 G 是用来将光标移动到某一行的快捷键。

 GG 将光标移动到文件最后一行第一个字符处

 gg 将光标移动到文件第一行第一个字符处

 nG 将光标移动到第n行的第一个字符处

 ngg 跟 nG 功能相同

 d + nG 删掉光标所在行向下一直到第n行的字符(包括本行与第n行)

 d + ngg 跟 d + nG 功能相同

 y + nG 复制光标所在行向下一直到第n行的字符(包括本行与第n行)

 y + ngg 跟 y + nG 功能相同

 dgg 从文件第一行一直删到光标所在位置之前(不包括光标)

 dGG 从光标所在位置一直删到文件最后一行(包括光标和最后一行)

Command模式

Normal模式下按冒号进入Command模式,之后可以输入以下命令:

 w 保存文件

 q 退出文件

 q! 强制退出

 wq 保存并退出

 wq! 保存并强制退出

 args 显示文件名称,切换文件

 e foo.txt 打开foo.txt文件

 saveas ~/foo.txt 另存为~/foo.txt文件

 split 切分窗口, vsplit 

 set n 设置行号

 $ 的效果和 GG 的一样,光标直接跳到最后一行开头

 n 的效果也和 nG 一样,光标直接跳到第n行开头

 搜索

 :/keyword  向下搜索,如果到底了,vim会自动从头开始

 :?keyword  向上搜索,如果到头了,vim会自动从底部开始

搜索之后,按

 n 到下一处搜索匹配的位置

 N 到上一处搜索匹配的位置

针对光标停留处的特定单词,可以使用快捷键进行向上和向下的搜索,而且是vim的全词搜索:

 Shift + 8 即*键,直接对光标停留处的单词进行向下搜索

 Shift + 3 即#键,直接对光标停留处的单词进行向上搜索

 :set hlsearch 搜索词高亮显示设置

 :nohl 取消搜索词高亮显示,用快捷键搜索的高亮也用此命令取消

其它技巧

文件保存后(连按两次 Esc ),vim会自动做静态语法检测。

 Shift + ZZ 保存并退出文件。

 :x 也是保存并退出。

挂起与唤回

当时用vim编程时,时常需要切换回控制台运行测试代码,比较麻烦。这时可以使用 CTRL + z 将vim调至后台挂起,界面自动跳回控制台,会有文字提示vim被挂起(进程编号即对应的运行中的vim),当控制台操作完成后(例如编译运行看结果),再按 fg 即可唤起之前被挂起的vim至前台,继续编辑。

在vim界面,保存文件后,也可直接按 F5 快速切换回控制台,再按回车可直接编译运行程序(不必再自己操作编译过程)。

vimtutor

vim的使用手册,所有功能和操作可在此学习查询。

man手册

在vim中,可以按 Shift + k 快速跳转到光标所在位置函数在man手册中对应的说明使用文档,可查看函数的介绍与使用,按 q 退出返回。

你也可以直接在控制台输入 man + 函数名 查看对应函数的man手册说明文档,可加 -k 选项进行函数的关键字查找(会返回名字或定义中包含关键字的所有函数列表),或 -f 选项,返回绝对匹配名字的函数列表。

tldr(too long don't read)

如果嫌man太长看起来费劲,可以选择安装 sudo apt install tldr (ubuntu18.04以上版本)。tldr相对man来说要精简不少,但是只支持命令,不支持C库函数。

个性化vim配置

详见github ma6174主页,上面整合了众多优秀的vim插件,可根据自己的需求进行个性化配置。

Min是清明的茗
原文地址:https://www.cnblogs.com/MinPage/p/13879486.html