本文为vimtutor总结,仅摘录部分常用vim语句以供复习。
Chapter 1
i 输入欲插入文本 <ESC> 在光标前插入文本
A 输入欲添加文本<ESC> 在一行后添加文本
Chapter 2
- 欲从当前光标删除至下一个单词,请输入:dw
- 欲从当前光标删除至当前行末尾,请输入:d$
- 欲删除整行,请输入:dd
- 在正常模式下修改命令的格式是:
operator [number] motion
其中:1
2
3operator - 操作符,代表要做的事情,比如 d 代表删除
[number] - 可以附加的数字,代表动作重复的次数
motion - 动作,代表在所操作的文本上的移动,例如 w 代表单词(word),$ 代表行末等等。 - 欲移动光标到行首,请按数字0键:0
- 欲撤消以前的操作,请输入:u
欲撤消在一行中所做的改动,请输入:U
欲撤消以前的撤消命令,恢复以前的操作结果,请输入:CTRL-R
Chapter 3
- 要重新置入已经删除的文本内容,请输入 p。该操作可以将已删除的文本内容置于光标之后。如果最后一次删除的是一个整行,那么该行将置于当前光标所在行的下一行。(被删除文本存入缓存,个人认为类似于剪切)。
- 要替换光标所在位置的字符,请输入r和要替换掉原位置字符的新字符即可。
- 更改类命令允许您改变从当前光标所在位置直到动作指示的位置中间的文本。比如输入ce可以替换当前光标到单词的末尾的内容;输入c$可以替换当前光标到行末的内容。
- 更改类命令的格式是:
c [number] motion
Chapter 4
CTRL-g用于显示当前光标所在位置和文件状态信息。
G用于将光标跳转至文件最后一行。
gg用于将光标跳转至文件第一行。
先敲入一个行号然后输入G则是将光标移动至该行号代表的行。- 输入/然后紧随一个字符串是在当前所编辑的文档中正向查找该字符串。
输入?然后紧随一个字符串则是在当前所编辑的文档中反向查找该字符串。
完成一次查找之后按n键是重复上一次的命令,可在同一方向上查找下一个匹配字符串所在;或者按大写 N 向相反方向查找下一匹配字符串所在。CTRL-O带您跳转回较旧的位置,CTRL-I则带您到较新的位置。 - 如果光标当前位置是括号(、)、[、]、{、},按%会将光标移动到配对的括号上。
- 在一行内替换头一个字符串 old 为新的字符串 new,请输入
:s/old/new
在一行内替换所有的字符串 old 为新的字符串 new,请输入:s/old/new/g
在两行内替换所有的字符串 old 为新的字符串 new,请输入:#,#s/old/new/g
进行全文替换时询问用户确认每个替换需添加 c 标志:%s/old/new/gc
Chapter 5
:!command用于执行一个外部命令 command。如:!ls :rm sth:w FILENAME可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文件中。v motion :w FILENAME可将当前编辑文件中可视模式下选中的内容保存到文件FILENAME 中。:r FILENAME可提取磁盘文件FILENAME并将其插入到当前文件的光标位置后面。:r !dir可以读取dir命令的输出并将其放置到当前文件的光标位置后面。
Chapter 6
- 输入o可以在光标下方打开新的一行并进入插入模式。
输入O可以在光标上方打开新的一行。 - 输入a可以在光标所在位置之后插入文本 。
输入A可以在光标所在行的行末之后插入文本。 - e命令可以使光标移动到单词末尾,因此在单词后插入为ea。
- 操作符y复制文本,p粘贴先前复制的文本。
- 输入R将进入替换模式,直至按<ESC>键回到正常模式。
- 输入
:set xxx可以设置 xxx 选项。一些有用的选项如下:
‘ic’ ‘ignorecase’ 查找时忽略字母大小写
‘is’ ‘incsearch’ 查找短语时显示部分匹配
‘hls’ ‘hlsearch’ 高亮显示所有的匹配短语
选项名可以用完整版本,也可以用缩略版本。 - 在选项前加上 no 可以关闭选项:
:set noic