Vi常用命令
vimtutor
这个命令可以查看vi使用教程有中文的
进入vi命令
命令 | 描述 |
---|---|
vi <file name> | 打开或创建文件,并将光标置于第一行首 |
vi +n <file name> | 打开文件,将光标置于第n行首 |
vi + <file name> | 打开文件,将光标置于最后一行首 |
vi -r <file name> | vi编辑异常退出,可以用这个恢复文件 |
移动光标
命令 | 描述 |
---|---|
h | 光标左移一个字符 |
l | 光标右移一个字符 |
space | [空格] 光标右移一个字符 |
backspece | [delete] 光标左移一个字符 |
k 或 ctrl + p | 光标上移一行 |
j 或 ctrl + n | 光标下移一行 |
w | 光标右移一个字至字首 |
b | 光标左移一个字至字首 |
e | 光标右移一个字至字尾 |
) | 光标移到句首 |
( | 光标移到句尾 |
{ | 光标移到段落开头 |
} | 光标移到段落结尾 |
n G | 光标移动到第n 行首 |
n + | 光标下移到第n 行 |
n - | 光标上移到第n 行 |
n $ | 光标移到第n 行尾 |
H | 光标移到屏幕顶行 |
M | 光标移到屏幕中间行 |
L | 光标移到屏幕最后行 |
0 | 数子0 光标移到当前行首 |
$ | 光标移到当前行首 |
屏幕翻滚
命令 | 描述 |
---|---|
Ctrol u | 向文件首翻半屏 |
Ctrol d | 向文件尾翻半屏 |
Ctrol f | 向文件尾翻一屏 |
Ctrol b | 向文件首翻一屏 |
n z | 将第n 行滚至屏幕顶部,不指定n 将当前行滚到屏幕顶部 |
插入文本
命令 | 描述 |
---|---|
i | 插在光标前 |
I | 插在当前行首 |
a | 插在光标后 |
A | 插在当前行位 |
o | 插在当前行之下新开一行 |
O | 插在当前行之上新开一行 |
r | 替换当前字符 |
R | 替换当前字符及其后的字符,至指按ESC |
s | 删除光标选中的字,并进入插入模式 |
S | 删除指定数目的行,并进入插入模式 |
n cw 或 n CW | 修改n 个的字 |
n CC | 修改n 行 |
删除复制
命令 | 描述 |
---|---|
n dw 或 n DW | 删除光标处开始及其最后的呢n-1 个字 |
d^ | 删到行首 |
d$ | 删到行尾 |
n dd | 删除当前行及其后n-1 行 |
x | 删除光标后的一个字符 |
X | 删除光标前的一个字符 |
u | 撤销上次操作 |
yn w | 复制n 个单词 |
yn l | 复制n 个字符 |
y$ | 复制当前光标至行尾处 |
n yy | 复制n 行 |
p | 粘贴复制内容 |
搜索或替换
命令 | 描述 |
---|---|
/quo | 从光标开始处向文件尾搜索quo |
?quo | 从光标开始处向文件首搜索quo |
n | 在同一方向重复上一次的搜索命令 |
N | 在反方向重复上一次的搜索命令 |
:s/a1/a2/g | 不加g 只会修改第一个,在当前行用a2替换a1 |
:n ,m s/a1 /a2 /g | 将第n 至m 行中所有的a1 替换成a2 |
:%s/a1 /a2 /gc | gc 有提示功能将文件中的的a1 都用a2 代替 |
选项设置
命令 | 描述 |
---|---|
set all | 列出所有选项设置 |
set number | 显示行号 |
set nonu | 隐藏行号 |
set ignorance | 在搜索中忽略大小写 |