在使用 Vim 的过程中,经常需要粘贴、替换、跳转等操作,由于我脑子笨,时常记不住,总是依赖 google 帮忙才能完成。所以这次索性就把常用的命令集中梳理一下,通过写文章的方式来强迫自己记住:)
编辑
插入
i:在当前位置插入
a:在当前位置后插入
I:在当前行首插入
A:在当前行尾插入
删除
X:删除前一个字符
s:删除光标所在的字符,光标还在当前行(等同于 x)
S:删除光标所在的行,光标还在当前行(不同于dd)
dd:删除一行,光标到下一行
[N]d+Enter:删除当前行开始的 N 行
dw,dW:从当前光标处开始删除一个单词(大写包含标点)
d$:删除当前字符之后的所有字符(本行)
dk:删除当前行和上一行
dj:删除当前行和下一行
kdgg:删除当前行之前所有行(不包括当前行)
jdG(jd shift + g):删除当前行之后所有行(不包括当前行)
:1,10d:删除1-10行
:10d:删除第10行
:11,$d:删除11行及以后所有的行
移动和粘贴
ddp:交换光标所在行和其下紧邻的一行
xp:交换当前字符和其下一个字符
~:将当前字符变换为大写
[N]>>:一行或N行向右移动一个 tab
[N]<<:一行或N行向左移动一个 tab
[N]yy:复制一行或者N行
yw:复制一个单词
p:粘贴
shift+p:在当前行前粘贴
:1, 10 m 20 将第1-10行移动到第20行之后
:1,10 co 20 将1-10行插入到第20行之后
:1,$ co $ 将整个文件复制一份并添加到文件尾部
光标跳转
W,E,w,e:以单词为单位,向前跳动,大写包含标点(w 光标落在单词首字母,e 光标落在单词为字母)
B,b:以单词为单位,向后跳动,大写包含标点
O(大写字母O):在当前行上方开启新的一行
o(小写字母o):在当前行下方开启新的一行
^:移动到本行第一个非空白字符上
$:光标移动到一行的结尾
[N]$:移动到下面 N 行的行尾
0(数字0):光标移动到本行第一个字符上
gg:光标移动到文档的开头
G:光标移动到文档的结尾
Ctrl + e:向下滚动一行
Ctrl + y:向上滚动一行
Ctrl + d:向下滚动半屏
Ctrl + u:向上滚动半屏
Ctrl + f:向下滚动一屏
Ctrl + b:向上滚动一屏
搜索和替换:
查找很长的词,如果一个词很长,键入麻烦,可以将光标移动到该词上,按*或#键即可以该单词进行搜索,相当于/搜索;而#命令相当于?搜索。
/pattern:查找 pattern,按 n 健查找下一个,按 N 键查找前一个
?pattern:查找 pattern,反向查找,按 n 健查找下一个,按 N 键查找前一个
:set ignorecase 忽略大小写的查找
:set hlsearch 高亮搜索结果,所有结果都高亮显示,而不是只显示一个匹配。
:set incsearch 逐步搜索模式,对当前键入的字符进行搜索而不必等待键入完成
n:光标到达搜索结果的下一个目标
N:光标到达搜索结果的上一个目标
ra 将当前字符替换为a,当期字符即光标所在字符
s/old/new/ 用old替换new,替换当前行的第一个匹配
s/old/new/g 用old替换new,替换当前行的所有匹配
%s/old/new/g 用old替换new,替换整个文件的所有匹配
文件和窗口:
:split file 横向打开一个新窗口,光标停在顶层的窗口上
:vsplit file 纵向打开一个新窗口,光标停在顶层的窗口上
Ctrl+w 移动到下一个窗口
:close 关闭当前窗口
:open file 在新窗口中打开文件
:bn 切换到下一个文件
:bp 切换到上一个文件
其他
.:重复最后一个命令
:!command 执行 shell 命令
:suspend或Ctrl - Z 挂起vim,回到shell,按fg可以返回vim
:scriptnames 查看vim脚本文件的位置,比如.vimrc文件,语法文件及plugin等
个人觉得能够被经常用到的也就这么多,如果以后发现还有其他命令,就再补充吧。。。
网友评论