vim常用命令总结
文章目录
点击Esc按键,然后点击:
进入命令编辑模式
1、查找
命令 | 说明 |
---|---|
/str | 向下查找str字符或单词 |
?str | 向上查找str字符或单词 |
n | 查找模式下,下一个字符 |
N | 查找模式下,上一个字符 |
v{str} -> * | 选中str,按“*”将查找一次str出现的位置 |
/{str}\> | 精确查找整个单词str,而不会查找到string,"\>"匹配结束处,“\<”匹配开始处 |
2、替换
命令 | 说明 |
---|---|
s/{pattern}/{replace}/ | 替换第一个出现的匹配正则文本pattern为replace |
s/{pattern}/{replace}/g | 替换当前行所有匹配正则文本pattern为replace |
%s/{pattern}/{replace}/g | 全局替换所有匹配正则文本pattern为replace |
s/{pattern}/{replace}/gc | 全局替换所有匹配正则文本为replace,需确认(confirm) |
2,5/{pattern}/{replace}/g | 替换2到5行匹配正则的文本为replace |
3、编辑
3.1 字符插入、删除
命令 | 说明 |
---|---|
x | 向后删除字符 |
X | 向前删除字符 |
s | 替换字符 |
i | 在光标前插入 |
I | 在行首插入 |
a | 在光标后插入 |
A | 在行尾插入 |
c | 改变(change),删除并进入编辑模式 |
C | 改变(change),删除光标后字符到行尾并进入编辑模式 |
3.2 单词
命令 | 说明 |
---|---|
diw | 删除光标所在单词,不包含空格,del inner word |
daw | 删除光标所在单词,包含空格,del a word |
dw | 删除光标后的字符到下一个单词的词首,包含空格,d4w—删除4个单词,d4e,d$ |
3.3 行操作-----删除、插入、编辑
命令 | 说明 |
---|---|
D | 删除光标后的字符到行尾,不可编辑 |
C | 修改光标后的字符到队尾,可编辑 |
S | 修改整行,可编辑 |
dd | 删除整行 |
yy | 复制整行 |
o | 向下插入一行 |
O | 向上插入一行 |
A | 向前行首插入 |
I | 当前行尾插入 |
J | 两行合一行,{n}J:n行合一行 |
3.4 撤销
命令 | 说明 |
---|---|
u | 向前撤销 |
ctrl+r | 向后恢复 |
3.5 编辑(复制,剪切,删除)
命令 | 说明 |
---|---|
p | 向下复制一行 |
P | 在当前行复制一行 |
d | 剪切 |
n,md | 删除n到m行内容 |
n,d | 删除n以后的行 |
.,$d | 删除光标所在行后的所有行 |
3.6 状态
命令 | 说明 |
---|---|
ctrl+g | 统计当前行的信息 |
g->ctrl + g | 统计所有内容信息 |
3.7 选择
命令 | 说明 |
---|---|
v | 从光标位置开始,光标经过位置选中 |
V | 从光标位置所在行开始,光标经过所在的行选中 |
ctrl+v | 从光标位置开始,构成选中矩阵 |
ggVG | 选中全部的文本,其中gg为跳到行首,V选中整行,G末尾 |
3.8 文件
命令 | 说明 |
---|---|
edit foo.txt | 编辑另一个foo.txt文件,简写:e foo.txt |
vim 1.txt 2.txt 3.txt | 同时编辑多个文件 |
vim -R file.txt | 只读打开 |
next (previous) | 切到下一个 |
n (prev) | 切到上一个 |
wn (wprev) | 保存后下一个 |
args | 显示正在编辑的文件和文件列表 |
split | 为文件打开一个新窗口 |
split 2.txt | 为2.txt文件打开一个新窗口 |
vsplit | 垂直分割窗口 |
vim -o 1.txt 2.txt | 为每个文件打开一个窗口 |
vimdiff 1.txt 2.txt | 比较文件之间的不同 |
tabe 1.txt | 问1.txt创建标签页,gt切换 |
q|w|wq all | 放弃|保存|保存所有并退出 |
only | 关闭除当前窗口外的其他窗口 |
sav|saves newfileName.txt | 另存为新文件(已保存) |
f|file newFileName.txt | 另存为新文件(未保存) |
ctrl + w | 切换窗口 |
4、移动
4.1 单词
命令 | 说明 |
---|---|
w | 下一个单词第一个字符 |
W | 下一个长单词第一个字符 |
e | 下一个单词最后字符 |
E | 下一个长单词最后字符 |
b | 前一个单词第一个字符 |
B | 前一个长单词第一个字符 |
g[e|E] | 前一个(长)单词最后字符 |
4.2 行
命令 | 说明 |
---|---|
(数字0|btn[home]) | 行首:包含空格 |
^ | 行首:非空字符 |
{n}$|btn[end] | n行行尾:非空字符 |
gg | 第一行 |
G | 最后一行 |
{n}G | 到第n行行首 |
4.3 句
命令 | 说明 |
---|---|
( | 到句首 |
) | 到句尾 |
4.4 段落
命令 | 说明 |
---|---|
{ | 到段首 |
} | 到段尾 |
4.5 屏幕
命令 | 说明 |
---|---|
ctrl + y | 向上滚屏 |
ctrl + e | 向下滚屏 |
ctrl + u | 向上滚半屏 |
ctrl + d | 向下滚半屏 |
ctrl + b | 向上滚半屏 |
ctrl + f | 向下滚半屏 |
4.6 跳转
命令 | 说明 |
---|---|
[f|F]{x} | 跳到【下】|【上】一个x字符的位置,分号(;)向下查看,逗号(,)反向 |
ctrl + ] | 跳到上一个应用的地方 |
ctrl + o | 跳到上一个光标位置 ctrl + I 调回来 |
% | 匹配关闭所在括号的另一个对应括号 |
{n}% | 跳到文件n%的地方 |
[H|M|L] | 跳到文件【第一行】|【中间行】|【结尾行】的行首 |
4.7 标记
命令 | 说明 |
---|---|
m[a-z] | (同一个文件用小写)为光标当前位置做一个[a-z]的标记(mark a),调回a标记,使用a。 清除所有标记:delm! |
m[A-Z] | (不同文件用大写)为光标当前位置做一个[A-Z]的标记(mark A),调到A标记,使用A。 清除所有标记:delm! |
marks A | 查看A标记对应的内容 |
‘’ | 前后两个mark之间跳转 |
4.8 其他
命令 | 说明 |
---|---|
h|j|k|i | 左,下,上,右 |
{n}[h|j|k|i] | 向【左|下|上|右】移动n |
5、折行
命令 | 说明 |
---|---|
zfap | 折一段文本 |
zf | 创建折行 |
zo | 打开折行 |
zc | 关闭折叠 |
6、保存、退出
命令 | 说明 |
---|---|
w | 保存 |
q | 退出 |
ZZ|WQ|x | 保存退出 |
ZQ|q! | 不保存退出 |
w{filename} | 另存为文件 |
7、寄存器
命令 | 说明 |
---|---|
reg | 查看寄存器 |
""p | 使用匿名寄存器粘贴 |
"ayy | 复制当前行到寄存器 a 中 |
"ap | 粘贴a寄存器中的内容 |
"+p | 粘贴剪切板中的内容 |
":p | 粘贴上一个vim命令,带冒号 -:的命令 |
"/p | 粘贴上一个在vim中搜索的关键词 |
"_[d|y] | 黑洞复制,黑洞剪切 |
8、设置
命令 | 说明 |
---|---|
set h|search | 开启高亮搜索 set noh|search关闭 |
set autoindent | 开启自动缩进 |
syntax | enable |
set nu! | 显示行号 |
set warp | 自动换行 |