vim 常用命令

vim 常用命令

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 如果想改变当前正在编辑的文件名,但不想保存该文件。

相关文章: