欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

常见 Linux vi 命令摘要

最编程 2024-07-04 11:28:32
...

1

进入vi命令


vi filename                  打开或新建文件,并置光标于行首

vi + filename               打开文件,并置光标与末行行首

vi +n filename             打开文件,并置光标与第 n 行行首

vi +/w1 filename          打开文件,并置光标于第一个匹配w1处

vi -r filename              上次使用vi时发生崩溃,恢复filename

vi file1 file2 ...             打开多个文件,一次编辑





2

移动光标


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                          屏幕下翻半屏





3

删除、复制与粘贴



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                           恢复前一个动作。(常用)




4

查找与替换



/word                       在光标后查找串 word (常用)

?word                       在光标前查找串 word (常用)

n                           在同一方向重复上次查找

N                           在反方向重复上次查找

                           

:s/w1/w2/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      同上!并且提示是否取代!(常用)                        




5

进入编辑模式 



i                           光标前

I                           本行行首

a                           光标后

A                           本行行尾(常用)

o                           当前行下插入一行

O                           当前行上插入一行(常用)

r                           替换当前字符

R                           替换当前字符及其后字符,直至按 ESC 退出

s                           删除当前字符,并开始输入文本

S                           删除本行,并开始输入文本

ncw 或 ncW                  删除 n 个字,并开始输入文本

nCC                         删除 n 行,并开始输入文本

Esc                         退出编辑模式,回到一般模式中(常用)




6

指令命令模式 



: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          忽略大小


推荐阅读