1. Vi编辑器
Vi命令是unix下常用而重要命令,可在全屏幕方式下编辑一个或多个文件。
Vi有三种模式:
1. 命令模式: 进入vi时所处的模式。在此模式下用户可输入各种子命令对进行*作,如删除行、粘贴行、移向下一个字、移向不同行等。
2. 文本输入模式: 在此模式下可以修改一行的内容并增添新行。在命令模式下键入a 、i 或c键可进入文本输入模式,按Escape键可返回命令模式。
3. 命令项模式: 在此模式下,可以通过子命令输入更多的参数。如:w子命令要求输入一文件名,"/"子命令要求输入一个查找项。用户使用Escape键返回命令模式。
功能 | 命令 | 备注 |
移动光标 | h | 将光标左移一格。 |
l | 将光标右移一格。 | |
k或Ctrl+p | 光标上移一行 | |
j或Ctrl+n | 光标下移一行 | |
w | 将光标移到下一个小字的前面。 | |
W | 将光标移到下一个大字的前面。 | |
b | 将光标移到前一个小字的前面。 | |
B | 将光标移到前一个大字的前面。 | |
e | 将光标移到下一个小字的后面。 | |
E | 将光标移到前一个大字的后面。 | |
fc | 把光标移到同一行的下一个c字符处。 | |
Fc | 把光标移到同一行的前一个c字符处。 | |
tc | 把光标移到同一行的下一个字符c的前一格。 | |
Tc | 把光标移到同一行的前一个字符c的后一格。 | |
number| | 把光标移到递number列上。 | |
+或Enter | 把光标移至下一行第一个非空白字符。 | |
- | 把光标移至上一行第一个非空白字符。 | |
) | 光标移至句尾 | |
( | 光标移至句首 | |
} | 光标移至段落开头 | |
{ | 光标移至段落结尾 | |
nG | 光标移至第n行首 | |
n+ | 光标下移n行 | |
n- | 光标上移n行 | |
n$ | 光标移至第n行尾 | |
H | 把光标移到屏幕最顶端一行。 | |
M | 光标移至屏幕中间行 | |
L | 光标移至屏幕最后行 | |
0 | (注意是数字零)光标移至当前行首 | |
$ | 光标移至当前行尾 | |
space | 字符 ">光标右移一个字符 | |
Backspace | 字符 ">光标左移一个字符 | |
屏幕翻滚 | Ctrl + f | 向后滚一页。 |
Ctrl + d | 向后滚半页。 | |
Ctrl + b | 向前滚一页。 | |
Ctrl + u | 向前滚半页。 | |
Ctrl + e | 屏幕向下滚一行。 | |
Ctrl + y | 屏幕项上滚一行。 | |
nz | 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 | |
插入修改 | i | 在光标前 |
I | 在当前行首 | |
a | 光标后 | |
A | 在当前行尾 | |
o | 在当前行之下新开一行 | |
O | 在当前行之上新开一行 | |
r | 字符 ">替换当前字符 | |
R | ||
s | 字符 ">从当前光标位置处开始,以输入的文本替代指定数目的字符 | |
S | 删除指定数目的行,并以所输入文本代替之 | |
ncw或nCW | 修改指定数目的字 | |
nCC | 修改指定数目的行 | |
ndw或ndW | 删除光标处开始及其后的n-1个字 | |
do | 删至行首 | |
d$ | 删至行尾 | |
ndd | 删除当前行及其后n-1行 | |
x或X | 字符,x删除光标后的,而X删除光标前的 ">删除一个字符,x删除光标后的,而X删除光标前的 | |
Ctrl+u | 删除输入方式下所输入的文本 | |
cc或S | 修改一整行。 | |
C | 改变一行光标位置以后的部分。 | |
cw | 改变光标所在单词。 | |
dd | 删除当前行。 | |
D | 删除光标所在行光标后面的内容。 | |
dw | 删除光标所在的单词。 | |
J | 把下一行内容加到本行行尾。 | |
rc | 字符替换成c . ">把光符所在字符替换成c . | |
R | 覆盖本行内容。 | |
u | 恢复上一次的修改。 | |
~ | 字符的大小写。 ">改变光标所在出字符的大小写。 | |
. | 重复上一个操作。 | |
<< | 把当前行移到左边。 | |
>> | 把当前行移到右边。 | |
搜索替换 | /pattern | 文件尾搜索pattern ">从光标开始处向文件尾搜索pattern |
?pattern | 文件首搜索pattern ">从光标开始处向文件首搜索pattern | |
n | 在同一方向重复上一次搜索命令 | |
N | 在反方向上重复上一次搜索命令 | |
s/p1/p2/g | 将当前行中所有p1均用p2替代 | |
n1,n2s/p1/p2/g | 将第n1至n2行中所有p1均用p2替代 | |
g/p1/s//p2/g | 文件中所有p1均用p2替换 ">将文件中所有p1均用p2替换 | |
/pattern/+number | 将光标停在包含pattern的行后面第number行上。 | |
/pattern/-number | 将光标停在包含pattern的行前面第number行上。 | |
% | 移到匹配的“()”或“{}”上。 | |
其他命令 | ctrl+g | 文件的有关信息。 ">取得正在编辑文件的有关信息。 |
:sh | 启动sh ,从sh中返回可用exit或ctrl+d . | |
:! Command | 执行命令command . | |
!! | 重新执行上次的:! Command子命令。 | |
q | 退出vi | |
q! | 文件并退出vi ">不保存文件并退出vi | |
ZZ或:wq | 文件的修改并退出vi . ">保存对文件的修改并退出vi . | |
e filename | 文件filename)。 ">使用filename激活vi (在vi中装入另一个文件filename)。 | |
e! | ||
e+filename | 文件尾部开始编辑。 ">使用filename激活vi ,并从文件尾部开始编辑。 | |
e+number filename | 使用filename激活vi ,并在第number行开始编辑。 | |
e# | 文件。 ">开始编辑另外一个文件。 | |
r filename | ||
r ! Command | ||
n1,n2 w!command | 文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入 ">将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入 |