Vim 学习整理
Vim对于提高编写生产力有很大帮助,笔者正在适应在日常场景下,更多地使用Vim进行代码编写工作,浅浅做整理,以帮助定期温习。本博文持续更新中…..
快捷键汇总
方向控制:
h(left)j(down)k(up)l(right)退出当前模式或清空任意已录命令 均可使用
ESC插入内容:
i: 在光标之前插入。I: 在光标所在行的首部之前插入。a: 在光标之后插入。A:在光标所在行的尾部之后插入。o: 在光标所在行的下方插入一个空行用于编辑。O(大写): 在光标所在行的上方插入一个空行用于编辑。
删除(剪切)内容:
遵照格式[number] operator motion或operator [number] motion。删除的operator是d。dw: w表示从当前光标位置开始执行删除,直到遇到下一个单词或标点。将光标置于单词首字母,常用来删除整个单词。de: e表示从当前光标位置开始执行删除,直到对本单词最后一个字母完成删除为止。d$: $表示从当前光标位置开始执行删除,直到本行结束。dd: 特殊组合,删除当前光标所在行。x:删除光标当前位置处的字符。
修改内容(删除内容并进入编辑模式):
遵照格式[number] operator motion或operator [number] motion。修改的operator是c。cw和ce效果相同,都可在单词首字符处使用,表示删除该单词并置为编辑模式。c$: $表示从当前光标位置开始执行删除,直到本行结束,然后进入编辑模式。cc: 特殊组合,删除当前光标所在行后进入编辑模式。
复制内容:
遵照格式[number] operator motion或operator [number] motion。复制的operator是y。yw: w表示从当前光标位置开始执行复制,直到遇到下一个单词或标点。将光标置于单词首字母,常用来复制整个单词。ye: e表示从当前光标位置开始执行复制,直到对本单词最后一个字母完成复制为止。y$: $表示从当前光标位置开始执行复制,直到本行结束。yy: 特殊组合,复制当前光标所在行。
粘贴:
p: 在光标之后粘贴一个字符,或在光标所在行下方粘贴(若干)行。
撤销修改:
u: 撤销上一个命令带来的修改。U: 撤销本行的全部修改(可被u撤销)。Ctrl+R: 恢复上次被u撤销的修改。
行与位移:
set nu: 在右侧显示行号。Ctrl+G: 在底部显示文件名和光标当前位置(所在行/全部行 列)。G: 到文件最后一行。gg: 到文件的第一行。:行号: 跳到任意一行。
查找:
/+任意内容+回车: 从文件首往下查找匹配的内容。?+任意内容+回车: 从文件尾往上查找匹配的内容。n: 查找下一个匹配项。N: 查找上一个匹配项。%: 将光标移到括号处,按下%,可以快速找到与当前括号匹配的括号。0: 到行首。$: 到行尾。w: 移动到下一个单词的首部。b: 移动到上一个单词的首部。e: 移动到下一个单词的尾部。
替换
r+任意字符将光标处的字符替换为任意字符。R: 进入替换模式,等效于Vim帮你常按了r键和光标移动。需要ESC返回正常模式。:s/old/new/g: 将光标所在行的全部old内容替换为new(g是全部替换)。:#s/old/new/g:#是行号,最多指定两个行号,彼此用逗号隔开。将指定行的全部old内容替换为new内容(g是全部替换)。:%s/old/new/gc: 在整个文件范围内将全部old内容替换为new(g是全部替换 c是每次替换都进行确认)。
执行外部shell命令:
可以在键入:!后,输入任何终端命令,Vim将暂时退返shell终端显示命令结果,稍后只需按下Enter键即可返回Vim。:!ls、:!mkdir xx、:!rm xx、:!top等都很常用。
文件的写入:
:wq: 保存文件到磁盘并退出。q::如果你把冒号和q的顺序输反了,就会进入到历史命令界面,这时请通过Ctrl+C 来退回到命令模式。
:x: 更简短的保存文件到磁盘并退出。:w FileName: 以指定的文件名保存文件到磁盘,等效于文件另存为。特别地,按v进入可视模式,选中若干文本后,再执行该操作,则能实现另存选中文本到指定文件。
缓冲区:
"键 组合+键 (两个都需要Shift) 然后再执行复制之类的操作,可以将结果存入缓冲区,跨文件使用。
参考
[1] : Vim-CS自学指南
[2] : Vimtutor
Vim 学习整理
http://example.com/posts/e9d4a39f/