vim使用基础文档

417 阅读4分钟

我经常使用 vim,不管是类 Unix 系统,或者 使用 vscode 的 vim 插件,都能很方便的使用 vim 高效快捷的编辑模式。

这篇文章记录下使用过程中的笔记。

Vim 基础

Vim 的多种模式

Vim 有多种模式,我这里常用的如下:

模式 描述
NORMAL MODE 正常模式,刚进入文件默认都会进入此模式,此模式下无法编辑,可以移动光标
INSERT MODE 插入模式,即编辑模式,此时可以输入文本
VISUAL MODE 可视化模式,按v键进入,可以选择特定字符或行
VISUAL LINE MODE 可视化行模式,按shift+v键进入,可以选择多行
VISUAL BLOCK MODE 可视化字符块模式,按ctrl+v键进入,可以选择多行选中相同位置的字符

Vim 常用快捷键

控制光标移动

以下都是在正常模式可视化模式下的按键

描述
j 光标下移一行
数字 n+j 光标下移 n 行
k 光标上移一行
数字 n+k 光标上移 n 行
h 光标左移一个字符
数字 n+h 光标左移 n 个字符
l 光标右移一个字符
数字 n+l 光标右移 n 个字符
0 光标移动到当前行开头
$ 光标移动到当前行结尾
gg 光标移动到整个文本开头
G 光标移动到整个文本结尾
数字 n+G 光标移动到第 n 行

编辑复制粘贴删除

以下都是在正常模式可视化模式下的按键

描述
i 在当前光标字符前进行编辑
shift+i 在当前行开头处进行编辑
a 在光标位置后进入编辑
shift+a 在本行结尾进入编辑
o 当前行下新增一行进行编辑
O 当前行上新增一行进行编辑
Esc 退出编辑模式或其它操作(如 shift+:执行命令时的退出)
u 撤销上一步的操作
u 或 shift+u 可视化模式下,u使选中的大写字母变为小写字母,shift+u使选中的小写字母变大写字母
x 删除当前光标所在的字符,或可视化模式下选中的多个字符
数字 n+x 删除当前光标开始的 n 个字符
dd 删除当前光标所在行,或可视化模式下选中的多个字符
数字 n+dd 删除当前行开始的 n 行
y 复制选中的行或字符
yy 未选中时,复制当前一整行
p 粘贴到光标位置的后面,如果复制的是行,则粘贴到新的下一行
shift+p 粘贴到光标位置的前面,如果复制的是行,则粘贴到新的上一行
r 替换,把选中的字符或行替换为后面输入的字符

执行命令

保存和退出

使用shift+:可执行以下命令

描述
w 保存
wq 保存并退出
q 退出不保存
q! 强制退出

窗口切换

使用shift+:可执行以下窗口相关命令

描述
split 垂直方向上打开一个新窗口,新窗口打开的文件还是之前的文件
split new.file 垂直方向上打开一个新窗口,新窗口打开的文件是 new.file
vsplit 水平方向上打开一个窗口,为什么是 vertical,可能表示窗口是竖直方向挨着排的?😊
ctrl+w 进入窗口切换状态,可以使用jkhl来切换窗口,或w来跳转下一个窗口

查找

正常模式下按/或?可进行查找操作

描述
/aaa 从上到下的顺序进入查找模式,然后按 Enter 跳转到第一个结果,n键跳转到下一个查找结果,shift+n跳转到上一个查找结果
?aaa 从下到上的顺序进入查找模式,然后按 Enter 跳转到第一个结果,此时n键也是从下到上的跳转

替换

正常模式下按shift+:可进行替换操作

使用语法:

s/正则字符串/替换成的字符串/标志位(gim)

正则 描述
s/string/STRING 光标所在行第一个匹配到的 string 替换为 STRING
s/string/STRING/g 光标所在行所有匹配到的 string 替换为 STRING
%s/string/STRING 所有行第一个匹配到的 string 替换为 STRING
%s/string/STRING/g 所有行所有匹配到的 string 替换为 STRING

最后查找与替换操作都是可以使用正则表达式的。

第一篇文章,喜欢的收藏点个赞吧😊

原文出处