常用vi编辑器命令行
程序员文章站
2024-02-05 19:11:52
游标控制: 内容编辑: A:当前行的尾部追加内容 i:游标前插入内容 l:游标后插入内容 o:在鼠标所在行的下面添加内容 O:在鼠标所在行的上面添加内容 ESC:推出编辑模式 Ctrl-T:移动到下一个tab Backspace:向后移动一个字符 Ctrl-U:删除当前 cw:删除游标所在的字符,然 ......
游标控制:
h | 游标向左移 | |
j |
|
|
k |
|
|
l(or spacebar) |
|
|
w | 向前移动一个单词 | |
b | 向后移动一个单词 | |
e | 向前移动一个单词,且游标指向单词的末尾 | |
( | 移到当前句子的首部 | |
) | 移到下一个句子的首部 | |
{ | 移到当前段的首部 | |
} | 移到下一段的首部 | |
[[ | 移到当前区段的首部 | |
]] | 移到下一区段的首部 | |
0 | 移到当前行的首部 | |
$ | 移到当前行的尾部 | |
^ | 移到当前第一个非空白字符的地方 | |
+or return | 移动到下一行的第一个字符 | |
- | 移动到上一行的第一个字符 | |
n| | 移动到当前行的字符n的地方 | |
h | 移动到当前屏幕的首部 | |
m | 移动到当前屏幕的中部 | |
l | 移动到当前屏幕的尾部 | |
nh | 移动到当前屏幕首部下的n行 | |
nl | 移动到当前屏幕尾部上的n行 | |
ctrl-f | 移动到下一屏 | |
ctrl-b | 移动到上一屏 | |
ctrl-d | 向下移动半屏 | |
ctrl-u | 向上移动半屏 | |
z reture | 刷新屏幕,调整屏幕,使当前的游标在刷新后的屏幕首部 | |
z. | 刷新屏幕,调整屏幕,使当前的游标在刷新后的屏幕中部 | |
z- | 刷新屏幕,调整屏幕,使当前的游标在刷新后的屏幕尾部 | |
ctrl-l | 刷新屏幕,不调整屏幕位置 | |
ctrl-r | 刷新屏幕,不调整屏幕位置 | |
/text | 向下搜索text | |
/ | 重复上次的内容向下搜索一次 | |
?text | 向上搜索text | |
? | 重复上次搜索的内容向上搜索一次 | |
n | 重复上次的搜索,向下搜索 | |
n | 重复上次的搜索,向下搜索 | |
/text/+n | 移动到text所在行的下面n行 | |
?text?-n | 移动到text所在行的上面n行 | |
ng | 移动到n行 | |
:n | 移动到n行 | |
g | 移动在最后一行 |
内容编辑:
a:当前行的尾部追加内容
i:游标前插入内容
l:游标后插入内容
o:在鼠标所在行的下面添加内容
o:在鼠标所在行的上面添加内容
esc:推出编辑模式
ctrl-t:移动到下一个tab
backspace:向后移动一个字符
ctrl-u:删除当前
cw:删除游标所在的字符,然后进入编辑模式
cc:删除游标所在的行,然后进入编辑模式
c:删除从游标所在位置到行尾的字符,然后进入编辑模式
dd:删除当前行
ndd:删除第n行
d:删除当前行游标所在位置的字符
dw:删除游标所在的字符
d}:删除当前段剩余的字符
d^:删除游标前到行首的字符
c/pat:删除游标后面到第一匹配字符间的内容
dn:删除游标后面到下一个匹配字符间的内容
dfa:删除当前行游标到匹配字符间的内容
dta:删除当前行游标到匹配字符间的内容(匹配的字符也将被删)
dl:删除从游标到屏幕的最后一行之间的内容(匹配的字符不被删)
dg:删除从游标到文件末尾之间的内容
j:连接上下行的内容
p:在游标后面插入buffer中的内容
p:在游标前面插入buffer中的内容
rx:用x替换字符
rtext:用text从游标开始出进行替换
u:撤销最后的改变
u:还原当前行的内容
x:向后删除游标所在位置的字符
x:向前删除游标前面的字符
nx:删除前面的n个字符,游标所在的字符将不会删除
.:还原最后一次的改变
~:反转字母的大小写
y:拷贝当前行到新的buffer
yy:拷贝当前行
“xyy:拷贝当前行的buffer名为x的buffer
ye:拷贝当前单词的末尾
文件操作:
:w | 写文件 |
:w! | 写文件,忽略警告信息 |
:w!file | 覆盖文件,忽略警告信息 |
:wq | 写文件之后退出编辑 |
:q | 退出编辑器 |
:q! | 强制退出编辑器 |
:w file | 把文件的内容写到另一个文件 |
zz | 退出编辑器,如果文件有改动,则保存再推出 |
:x | 退出编辑器,如果文件有改动,则保存再推出 |
:n1,n2w file | 把n1行到n2行间的内容写到文件file |
:n1,n2 >>file | 把n1行到n2行间的内容追加到文件file |
:e file2 | 在当前文件的命令行模式下编辑file2 |
:e! | 重新从磁盘加载文件 |
:e# | 交替编辑文件 |
:n | 编辑下一行 |
:n! | 编辑下一行(忽略警告) |
:r file | 在游标后面插入文件 |
:r !command | 在当前行的后面,插入运行命令后的内容 |
上一篇: 牟长青个人博客因未备案关闭