vim 常用命令


格式化
| 命令 |
说明 |
== |
(连按=两次)命令模式下,表示格式化当前行。 |
n== |
(n是自然数)表示格式化当前行起的下面n行。 |
gg=G |
格式化全文。 |
文本的选择
| 命令 |
说明 |
| v |
从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。 |
| V |
从光标当前行开始,光标经过的行都会被选中,再按一下V结束。 |
| Ctrl+ v |
从光标当前位置开始,选中矩形区域,再按一下Ctrl+v结束。 |
| ggVG |
选中全部的文本, 其中gg为跳到行首,V选中整行,G末尾 |
编辑选中文本
| 命令 |
说明 |
| d |
删除 |
| y |
复制 (默认是复制到”寄存器) |
| p |
粘贴 (默认从”寄存器取出内容粘贴) |
命令模式下编辑
| 命令 |
说明 |
| x |
删除光标下的字符 |
| dd |
删除一整行 |
| J |
删除换行符,两行合并为一行 |
| u |
撤销操作 |
| Ctrl+r |
重做,如果你撤消了多次,你还可以用CTRL-R(重做)来反转撤消的动作 |
| i |
命令可以在当前光标之前插入文本。 |
| a |
命令可以在当前光标之后插入文本。 |
| o |
命令可以在当前行的下面另起一行,并使当前模式转为Insert模式。 |
| O |
命令(注意是大写的字母O)将在当前行的上面另起一行。 |
| ZZ |
保存当前文件并退出Vim |
| :q! |
丢弃所有的修改并退出 |
改变文本
| 命令 |
说明 |
| c |
它的行为与”d”命令类似,不过在命令执行后会进入Insert模式。 |
| cw |
改变一个word。或者,更准确地说,它删除一个word并让你置身于Insert模式。 |
| cc |
命令可以改变整行。不过仍保持原来的缩进。 |
| c$ |
改变当前光标到行尾的内容。 |
| x |
代表dl(删除当前光标下的字符) |
| X |
代表dh(删除当前光标左边的字符) |
| D |
代表d$(删除到行尾的内容) |
| C |
代表c$(修改到行尾的内容) |
| s |
代表cl(修改一个字符) |
| S |
代表cc(修改一整行) |
| 命令 |
说明 |
| x |
删除当前光标下的字符(“dl”的快捷命令) |
| X |
删除当前光标之前的字符(“dh”的快捷命令) |
| D |
删除自当前光标至行尾的内容(“d$”的快捷命令) |
| dw |
删除自当前光标至下一个word的开头 |
| db |
删除自当前光标至前一个word的开始 |
| diw |
删除当前光标所在的word(不包括空白字符) |
| daw |
删除当前光标所在的word(包括空白字符) |
| dG |
删除当前行至文件尾的内容 |
| dgg |
删除当前行至文件头的内容 |
如果你用”c”命令代替”d”这些命令就都变成更改命令。
使用”y”就是yank命令,如此类推。
以Word为单位移动
| 命令 |
说明 |
| w |
可以将光标向前移动一个word的首字符上 |
| 3w |
将光标向前移动3个words |
| b |
将光标向后移动到前一个word的首字符上 |
| e |
将光标移动到下一个word的最后一个字符 |
| ge |
将光标移动到前一个word的最后一个字符上 |
移动到行首或行尾
| 命令 |
说明 |
| $ |
命令将光标移动到当前行行尾。 |
| 1$ |
会将光标移动到当前行行尾 |
| 2$ |
则会移动到下一行的行尾 |
| ^ |
命令将光标移动到当前行的第一个非空白字符上。 |
| 0 |
命令则总是把光标移动到当前行的第一个字符上。键也是如此。 |
移动到指定行
| 命令 |
说明 |
| % |
跳转到与当前光标下的括号相匹配的那一个括号上去。 |
| G |
光标定位到最后一行上 |
| 33G |
光标置于第33行上 |
| gg |
跳转到第一行的快捷的方法。 |
| H |
光标跳转到第一行 |
| M |
光标跳转到中间行 |
| L |
光标跳转到结尾行部分 |
滚屏
| 命令 |
说明 |
| Ctrl-u |
显示文本的窗口向上滚动了半屏。 |
| Ctrl-d |
命令将窗口向下移动半屏。 |
| Ctrl-e |
(向上滚动)一次滚动一行 |
| Ctrl-f |
可以使用和CTRL-Y(向下滚动)。要向前滚动一整屏使用命令CTRL-F。 |
| Ctrl-b |
是它的反向版。 |
| zz |
命令会把当前行置为屏幕正中央. |
| zt |
命令会把当前行置于屏幕顶端. |
| zb |
则把当前行置于屏幕底端. |
简单搜索
| 命令 |
说明 |
| /string |
命令可用于搜索一个字符串。”n”命令查找的字符串的下一个位置 |
| ? |
命令与”/”的工作相同,只是搜索方向相反. |
| * |
取当前光标所在的word并将它作用目标字符串进行向下搜索。 |
| # |
取当前光标所在的word并将它作用目标字符串进行向上搜索。 |
| ^ |
字符匹配一行的开头,/^was只匹配位于一行开始的单词was。 |
| $ |
字符匹配一行的末尾,/was$只匹配位于一行末尾的单词was。 |
| . |
这个字符可以匹配到任何字符。比如”c.m”可以匹配任何前一个字符是c,后一个字符是m的情况,不管中间的字符是什么。 |
| 反斜杠 |
匹配特殊字符,反斜杠在特殊字符前面 |
查看文件
| 命令 |
说明 |
| vim -R file |
仅是查看文件,不向文件写入内容,可以用只读形式编辑文件。 |
| vim -M file |
如果是想强制性地避免对文件进行修改。 |
更改文件名
| 命令 |
说明 |
| :sav(eas) move.c |
将现有文件存成新的文件。 |
| :f(ile) move.c |
如果想改变当前正在编辑的文件名,但不想保存该文件。 |
相关文章: