当前位置: > Linux命令 >

Linux vi常用命令汇总

时间:2019-12-30 13:46来源:linux.it.net.cn 作者:IT
进入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)
------分隔线----------------------------
栏目列表
推荐内容