进入vi命令
vi filename 打开或新建文件,并置光标于行首
vi + filename 打开文件,并置光标与末行行首
vi +n filename 打开文件,并置光标与第 n 行行首
vi +/w1 filename 打开文件,并置光标于第一个匹配w1处
vi -r filename 上次使用vi时发生崩溃,恢复filename
vi file1 file2 ... 打开多个文件,一次编辑
移动光标
h 或 [←] 或 [Backspace] 光标左移一个字符
l 或 [→] 或 [space] 光标右移一个字符
k 或 [↓] 或 ^p 光标上移一个字符
j 或 [↑] 或 ^n 光标下移一个字符
nh 或 n[←] 或 n[Backspace] 光标左移 n 个字符;l, j, k类似
b 或 B 光标移至本字字首
e 或 E 光标移至本字字尾
w 或 W 光标移至下一个字字首
nb 或 nB 光标移至前 n 个字字首
ne 或 nE 光标移至后 n 个字字尾
nw 或 nW 光标移至后 n 个字字首
- 光标上移一行
+ 或 [Enter] 光标下移一行
G 光标移至末行行首
0 数字 0, 光标移至本行行首 (常用)
$ 光标移至本行行尾
n- 光标上移 n 行
n+ 或 n[Enter] 光标下移 n 行
nG 光标移至第 n 行行首 (常用)
n$ 光标移至第 n 行行尾
( 光标移至句首
) 光标移至句尾
{ 光标移至段首
} 光标移至段尾
H 光标移至屏幕首行
M 光标移至屏幕中间行
L 光标移至屏幕末行
^f 屏幕上翻一屏(常用)
^b 屏幕下翻一屏(常用)
^d 屏幕上翻半屏
^u 屏幕下翻半屏
删除、复制与粘贴
X 向前删除一个字符(常用)
x 或 [del] 向后删除一个字符,
nX 向前删除 n 个字符
nx 删除光标处及其后 n-1个字符
ndw 或 ndW 删除光标处及其后 n-1个字
do 删至行首
d$ 删至行尾
dd 删除本行(常用)
ndd 删除本行及下 n-1 行(常用)
d1G 删除光标前字符 (小心)
dG 删除光标后字符 (小心)
^u 删除输入方式下所输入的文本
yy 复制本行(常用)
nyy 复制本行及下 n-1 行(常用)
y1G 复制光标前字符
yG 复制光标后字符
p 在下一行粘贴
P 在上一行粘贴(常用)
:n1,n2 co n3 将 n1 行到 n2 行内容拷贝到第 n3 行下
:n1,n2 m n3 将 n1 行到 n2 行内容移到第 n3 行下
:n1,n2 d 删除 n1 行到 n2 行内容
J 合并本列与下一列
u 恢复前一个动作。(常用)
查找与替换
/word 在光标后查找串 word (常用)
?word 在光标前查找串 word (常用)
n 在同一方向重复上次查找
N 在反方向重复上次查找
:s/w1/s2/g 将本行中的所有 w1 用 w2 替换
:n1,n2s/w1/w2/g 在第 n1 与 n2 行间的 w1 用 w2 替换!(常用)
:1,$s/w1/wd2/g 在首行与末行间的 w1 用 w2 替换 !(常用)
:g/w1/s//w2/g 同上
:1,$s/w1/w2/gc 同上!并且提示是否取代!(常用)
进入编辑模式
i 光标前
I 本行行首
a 光标后
A 本行行尾(常用)
o 当前行下插入一行
O 当前行上插入一行(常用)
r 替换当前字符
R 替换当前字符及其后字符,直至按 ESC 退出
s 删除当前字符,并开始输入文本
S 删除本行,并开始输入文本
ncw 或 ncW 删除 n 个字,并开始输入文本
nCC 删除 n 行,并开始输入文本
Esc 退出编辑模式,回到一般模式中(常用)
指令命令模式
:w 保存当前文件(常用)
:w! 强制保存当前文件
:q 退出 vi (常用)
:q! 不保存退出 vi,
:wq 保存后退出
:x 同上
ZZ
:wq! 强制保存后离开(常用)
:!command 执行shell命令command
:r!command 将命令command输出放到当前行
:e! 将档案还原到最原始的状态!
:w filename 将文件另存为 filename 文件
:n1,n2 w [filename] 将 n1 与 n2 间内容另存为 filename 文件
:r filename 在当前行下一行读入 filename 文件内容
:set nu 显示行号
:set nonu 取消行号
:set hls 高亮
:set ignorecase 忽略大小
(责任编辑:IT) |