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表示移动到下一个hF{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表示删除光标所在行及后面共8行内容。
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):w {file}:{file}为文件路径,表示另存文件:q:退出Vim(quit)
上面两个可以组合使用,如:wq表示保存并退出。加上!表示强制执行:如修改了文件,但是不想保存直接退出,就用:q!;或者:w {file}另存文件时,文件已存在,可以:w! {file}强行保存。
如果在需要root权限的地方忘了用root权限打开,但又改了很多内容没法放弃保存,可以用w !sudo tee %,注意空格和感叹号的位置与上面的强制保存不同。这条命令表示将内容写入到标准输出并调用shell命令(:w !),而调用的命令sudo tee %表示使用root权限(sudo)从标准输出读取内容并写入(tee)到当前文件(%)。
:e {file}:打开文件:e!:重新加载当前文件(放弃修改):saveas {file}:以指定路径另存文件:r {file}:将文件的内容插入到光标所在位置下方
:saveas {file}如果文件已存在,同样要加!,即:saveas! {file}。:saveas {file}和:w {file}的区别是:前者另存文件后,会切换到新文件,后续操作(如:w)是在新文件上进行;而后者另存文件后,后续操作还是在原来的文件上进行。
替换操作也是在命令模式下进行的。
: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:将选中文本转换为大写>:增加选中行的缩进(向右缩进)<:减少选中行的缩进(向左缩进)=:自动格式化
普通模式下,可以用>>和<<来快速缩进当前行,也可以在前面加上数字表示倍数操作。
微信赞赏
支付宝赞赏
