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/