Vim 中命令巨多,有时难免忘记需要快速查阅一下,这里列出一些 Vim 中使用频率很好的命令,方便查看。下面是我用的较多的命令,但是我也是试着使用 vim 不久,有许多命令都不知道,所以大家有什么自己常用的命令请在评论中回复,我及时添加,希望能整理出一份完整的常用命令。注意哦,是常用的!
1. 光标移动命令
0 移动到光标所在列的最前面[Home]
$ 移动到光标所在列的最後面[End]
CTRL + d 向下半页
CTRL + u 向上半页
CTRL + f 向下一页[PageDown]
CTRL + b 向上一页[PageUp]
k
h l
j
h l
j
nk 光标向上移动 n 行(其他以此类推)
nG 直接用数字 n 加上大写 G 移动到第 n 行(等同于命令“:n”)
fx 往右移动到 x 字符上
Fx 往左移动到 x 字符前
w 移到下一个单词首字母
b 移到前一个单词首字母
e 移到下一个单词末尾字母
ge 移到前一个单词末尾字母
nw 向前移动n个word(其他以此类推)
G 跳到文件尾
gg 跳到文件头
Ctrl + o 跳转到前一位置(1->2->3->4, Ctrl + o -> 3, Ctrl + o -> 2)
2. 删
除操作命令
x 删除光标所在的字符
dw 删除光标所在的单词(从光标处开始)
d$ 删除光标至行尾的所有字符
d0 删除光标至行首的所有字符
dd 删除当前行
dnd 删除当前n行
dG 删除当前行到最后一行
3. 改变与替换操作命令
r 替换光标所在的字符
cl 修改当前字符
cc 修改当前行
c$ 修改到行尾的内容
4. 查询命令
/string 往前搜索string【支持正则】
?string 往后搜索string
n 查找下一个
: 上下箭头 搜索命令历史
5. 拷贝与粘贴命令
yw 将光标所在单词拷入剪贴板
y$ 将光标至行尾的字符拷入剪贴板
yy 将当前行拷入剪贴板
yny 将当前n行拷入剪贴板
p 将剪贴板中的内容粘贴在光标后
P 将剪贴板中的内容粘贴在光标前
Vim 与 系统粘贴板交互
(Vim 有12个粘贴板依次编号为:0、1、2、...、9、a、"、+ ,其中 + 号为系统粘贴板," 为临时粘贴板)
"ny 将当前行内容复制到 n 号粘贴板(如 "+y 将当前行复制到系统粘贴板,可外部程序使用)
"np 将 n 号粘贴板内容粘贴到下一行
6. 文件编辑、保存及退出vi命令
xp 交换两个字符位置(当前字符和后面字符)
ddp 上下两行调换(当前行和下面一行)
:q 不保存退出
:q! 不保存强制性退出
:w 保存编辑
:w filename 存入文件filename中
:w! filename 强制性存入文件filename中
7. 其他命令
u 撤销,相当于Ctrl+z
Ctrl + r 重做
:help 查看所有帮助
:help xx 查看关于 xx 的帮助
ZZ 退出帮助,回到编辑模式
:new filename 打开或新建文件,如果不指定文件名或者文件名不存在则是新建文件。
8) 代码缩进
Shift + < 向左缩进 (缩进量可以用 :set shiftwidth=4 , :set softtabstop=4 设置)
Shift + > 向右缩进
== 自动缩进当前行 (根据语言特征使用自动缩进排版)
n== 自动缩进下面 n 行
gg=G 全文自动缩进
9) 字符串查找和替换
/str + <CR> 高亮显示所有匹配字符串
n 向后遍历匹配的字符串
N 向前遍历匹配的字符串
:s/str1/str2/ 用字符串 str2 替换行中
首次出现的字符串 str1
:s/str1/str2/g 用字符串 str2 替换行中 所有出现的字符串 str1
:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:n,m s/str1/str2/g 用字符串 str2 替换正文中第 n 行到 m 行出现的所有字符串 str1
:s/str1/str2/g 用字符串 str2 替换行中 所有出现的字符串 str1
:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:n,m s/str1/str2/g 用字符串 str2 替换正文中第 n 行到 m 行出现的所有字符串 str1
10) 选择文本、复制、粘贴和删除
v 从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。
V 从光标当前行开始,光标经过的行都会被选中,再按一下V结束。
Ctrl + v 从光标当前位置开始,选中光标起点和终点所构成的矩形区域,再按一下Ctrl + v结束。
ggVG 选中全部的文本:
"+p 粘贴,从系统剪贴板粘贴
V 从光标当前行开始,光标经过的行都会被选中,再按一下V结束。
Ctrl + v 从光标当前位置开始,选中光标起点和终点所构成的矩形区域,再按一下Ctrl + v结束。
ggVG 选中全部的文本:
y 复制 (默认是复制到"寄存器),选中文本后只需按一次"y"即可复制
d 删除,选中文本后只需按一次"d"即可删除
"+y 复制到系统剪贴板(也就是vim的”+“寄存器)
"+p 粘贴,从系统剪贴板粘贴