vi
是一个功能强大的文本编辑器,在 Unix 和类 Unix 系统中非常流行。以下是一些基本的 vi
命令:
打开文件
-
vi filename
:打开或新建文件,并将光标置于第一行首。 -
vi +n filename
:打开文件,并将光标置于第n
行首。 -
vi -r filename
:在上次正用vi
编辑时发生系统崩溃,恢复filename
。 -
vi filename...filename
:打开多个文件,依次进行编辑。
移动光标
-
h
:光标左移一个字符。 -
l
:光标右移一个字符。 -
space
:光标右移一个字符。 -
Backspace
:光标左移一个字符。 -
k
或Ctrl+p
:光标上移一行。 -
j
或Ctrl+n
:光标下移一行。 -
w
或W
:光标右移一个字至字首。 -
b
或B
:光标左移一个字至字首。 -
e
或E
:光标右移一个字至字尾。 -
0
:(数字零)光标移至当前行首。 -
$
:光标移至当前行尾。 -
H
:光标移至屏幕顶行。 -
M
:光标移至屏幕中间行。 -
L
:光标移至屏幕最后行。
屏幕翻滚
-
Ctrl+u
:向文件首翻半屏。 -
Ctrl+d
:向文件尾翻半屏。 -
Ctrl+f
:向文件尾翻一屏。 -
Ctrl+b
:向文件首翻一屏。
插入文本
-
i
:在光标前插入文本。 -
I
:在当前行首插入文本。 -
a
:在当前行尾插入文本。 -
o
:在当前行之下新开一行并插入文本。 -
O
:在当前行之上新开一行并插入文本。 -
r
:替换当前字符。 -
R
:替换当前字符及其后的字符,直至按ESC
键。 -
s
:从当前光标位置处开始,以输入的文本替代指定数目的字符。 -
S
:删除指定数目的行,并以所输入文本代替之。
删除命令
-
dd
:删除当前光标所在行。 -
dw
:删除当前光标所在位置到下一个单词开头的内容。 -
x
:删除当前光标所在位置的字符。 -
yy
:复制当前光标所在行。 -
p
:粘贴复制的内容。
保存和退出
-
:
:进入命令模式。 -
w
:保存当前文件。 -
q
:退出vi
。 -
wq
:保存并退出vi
。 -
q!
:不保存文件并退出vi
。
寄存器操作
-
?nyy
:将当前行及其下n
行的内容保存到寄存器?
中。 -
nCW
:修改指定数目的字。 -
nCC
:修改指定数目的行。
搜索及替换
-
/
:从光标开始处向文件尾搜索pattern
。 -
?pattern
:从光标开始处向文件首搜索pattern
。 -
n
:在同一方向重复上一次搜索命令。 -
N
:在反方向上重复上一次搜索命令。 -
s/p1/p2/g
:将当前行中所有p1
均用p2
替代。 -
:%s/p1/p2/g
:将文件中所有p1
均用p2
替换。
选项设置
-
all
:列出所有选项设置情况。 -
term
:设置终端类型。 -
ignorecase
:在搜索中忽略大小写。 -
list
:显示制表位和行尾标志。 -
number
:显示行号。 -
report
:显示由面向行的命令修改过的数目。 -
terse
:显示简短的警告信息。 -
warn
:在转到别的文件时若没保存当前文件则显示NO write
信息。 -
nomagic