vim 常用命令
![vim1](https://i-blog.csdnimg.cn/blog_migrate/739d3d0dddc7a06fa6144cac20728f65.png)
![vim2](https://i-blog.csdnimg.cn/blog_migrate/76429d2c5ac8bb73dbb04cbdf0e28dfe.png)
格式化
命令 | 说明 |
---|
== | (连按=两次)命令模式下,表示格式化当前行。 |
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 | 如果想改变当前正在编辑的文件名,但不想保存该文件。 |