Vim简易操作指南
Vim是一款好用的字符界面文本编辑器。它的强大此处不再赘述。本文只是整理Vim常用的操作说明,更全面的说明请查阅文档。
Vim共有7种模式,不同模式下有不同的操作方式的,实现不同的功能,常用的有四种模式。下面就分别按不同的模式整理。
普通模式
这是打开Vim默认的模式,用来执行移动光标、复制、粘贴、删除等操作,或切换到其他模式。在这个模式下直接按键进行操作,区分大小写。{}
包裹的部分表示需要替换成实际内容。
光标移动
h
:光标左移一个字符,等价于方向键左←j
:光标下移一行,等价于方向键下↓k
:光标上移一行,等价于方向键上↑l
:光标右移一个字符,等价于方向键右→
以上操作可以在前面加上数字来设定倍数,如12j
表示向下移动12行。
0
:光标移动到行首,等价于Home$
:光标移动到行尾,等价于Endw
或W
:光标移动到下一个单词开头e
或E
:光标移动到当前单词结尾b
或B
:光标移动到上一个单词开头
wWeEbE
大小写的区别是按标点分隔还是按空格分隔,可以在前面加上数字来设定倍数,如3w
表示移动到后面第3个单词开头。
f{char}
:光标移动到行内下一个字符(区分大小写),如fh
表示移动到下一个h
F{char}
:光标移动到行内上一个字符(区分大小写)t{char}
:光标移动到行内下一个字符(区分大小写)的前一个字符T{char}
:光标移动到行内上一个字符(区分大小写)的后一个字符%
:光标跳转到匹配的另一半括号(如()
、{}
和[]
)的位置,如果光标位置不是括号则跳转到下一个括号:{line_num}
:光标跳转到指定行号,如:21
表示跳转到第21行,这一条本质是命令行模式,因此输入完之后需要回车确认-
*
:向下搜索光标当前所在单词 #
:向上搜索光标当前坐在单词
屏幕滚动
- PgUp:即Page Up键,向上滚动一屏,等价Ctrl+B(backward)
- PgDn:即Page Down,向下滚动一屏,等价Ctrl+F(forward)
- Ctrl+U,向上滚动半屏(up)
- Ctrl+D,向下滚动半屏(down)
以上操作可以在前面加上数字来设定倍数,如先输入2
再按Ctrl+F就表示向下滚动2屏。
zz
:将当前行置于屏幕中央zt
:将当前行置顶(top)zb
:将当前行置底(bottom)
模式切换
- Esc:任意模式退出到普通模式
插入模式,会在左下角显示-- INSERT --
或-- 插入 --
(根据语言不同)。
i
:进入插入模式a
:光标右移一个字符并进入插入模式o
:在光标下一行插入新行并进入插入模式I
:光标移动到行首并进入插入模式A
:光标移动动行尾并进入插入模式O
:在光标上一行插入新行并进入插入模式
命令行模式,会在左下角显示提示符(即下面的:
、/
和?
)。
:
:进入执行命令的命令行模式/
:进入搜索的命令行模式?
:进入反向搜索的命令行模式
会在左下角显示-- VISUAL --
或-- 可视 --
,或-- VISUAL LINE --
或-- 可视 行 --
。
v
:进入字符选择的可视模式V
:进入行选择的可视模式
复制、删除、粘贴
Vim的删除并不是真的删除,而是放入剪贴板(相当于剪切),后面用于粘贴。
x
:删除光标所在字符dd
:删除光标所在行cc
:删除光标所在行并进入插入模式yy
:复制光标所在行
上面的操作可以在前面加上数字表示操作倍数,包括光标所在位置和后面的内容,如12x
表示删除光标所在位置及后面共12个字符的内容,8dd
表示删除光标所在行及后面共12行内容。
d
:配合光标移动命令来进行删除操作,操作包括光标所在位置y
:配合光标移动命令来进行复制操作,操作包括光标所在位置c
:配合光标移动命令来进行删除操作并进入插入模式,操作包括光标所在位置
如j
是光标移动到下一行,则dj
表示删除光标所在行和下一行;G
表示移动到文件末尾,则yG
表示复制到文件末尾。
p
:如果剪贴板中是字符,则在光标位置后面开始插入;如果是行,则在光标所在行的下一行开始插入P
:如果剪贴板中是字符,则在光标位置前面开始插入;如果是行,则在光标所在行的上一行开始插入
可以在前面加上数字表示粘贴几次,如5p
表示粘贴5次。
一些特殊按键
这些按键和其他文本编辑器可能不同,需要留意。
- Backspace:即退格键,光标左移一个字符(等价于
h
) - Enter:即回车键,光标下移一行(等价于
j
) - Ins:即Insert键,进入插入模式(等价于
i
) - Del:即Delete键,删除光标位置的字符(等价于
x
)
插入模式
这个模式用于直接编辑文本。这个模式没什么好说的,就是直接输入内容就插入到光标所在位置,和其他文本编辑器没有什么区别。按Esc或Ctrl+[退出插入模式。
命令行模式
这个模式用于执行命令,分别是命令(:
)、搜索(/
)和反向搜索(?
)。下面列出的命令,是直接在普通模式输入的,包括:
、/
和?
,输入后用回车来执行。
执行命令
:w
:写入文件(即保存)(write):q
:退出Vim(quit)
上面两个可以组合使用,如:wq
表示保存并退出。加上!
表示强制执行,如修改了文件,但是不想保存直接退出,就用:q!
。
:e {file}
:打开文件:e!
:重新加载当前文件(放弃修改):saveas {path}
:以指定路径另存文件:r {file}
:将文件的内容插入到光标所在位置下方
替换操作也是在命令模式下进行的。
:s/{old}/{new}
:在当前行搜索{old}
并替换第一个为{new}
,支持正则表达式(下同):s/{old}/{new}/g
:在当前行搜索{old}
并全部替换为{new}
:%s/{old}/{new}/g
:在全文搜索{old}
并全部替换为{new}
:%s/{old}/{new}/gc
:在全文搜索{old}
并全部替换为{new}
,每次替换前需确认:{start},{end}s/{old}/{new}/g
:在第{start}
行到第{end}
行搜索{old}
并全部替换为{new}
,{start}
和{end}
为数字,省略{start}
表示从文件开头开始,省略{end}
表示到文件末尾结束
搜索
搜索在普通模式下直接输入/{regex}
(向后搜索)或?{regex}
(向前搜索),{regex}
是正则表达式。
搜索后,会自动跳转到匹配项,可以在普通模式下用n
来跳转到下一个匹配项,用N
来跳转到上一个匹配项。
可视模式
这个模式用于选择文本。选择文本后,可以用上面普通模式的光标移动和屏幕滚动操作来选择内容。然后用d
、y
、c
、p
、x
等按键来执行操作(含义和上面复制、删除、粘贴一节中的一样)。此外,还有一些独有操作:
u
:将选中文本转换为小写U
:将选中文本转换为大写>
:增加选中行的缩进(向右缩进)<
:减少选中行的缩进(向左缩进)=
:自动格式化
普通模式下,可以用>>
和<<
来快速缩进当前行,也可以在前面加上数字表示倍数操作。
微信赞赏
支付宝赞赏