基本VI命令

本文介绍Vi编辑器的基本操作,包括光标控制、文本添加与删除、文本修改、查找与替换、复制与撤销等功能,帮助读者快速掌握Vi编辑器的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

光标控制命令 <o:p></o:p>

<o:p> </o:p>

命令                    光标移动<o:p></o:p>

h^h                    向左移一个字符<o:p></o:p>

j^j^n                 向下移一行<o:p></o:p>

k^p                    向上移一行<o:p></o:p>

l或空格                    向右移一个字符<o:p></o:p>

G                    移到文件的最后一行<o:p></o:p>

nG                    移到文件的第n<o:p></o:p>

w                    移到下一个字的开头<o:p></o:p>

W                    移到下一个字的开头,忽略标点符号<o:p></o:p>

b                    移到前一个字的开头<o:p></o:p>

B                    移到前一个字的开头,忽略标点符号<o:p></o:p>

L                    移到屏幕的最后一行<o:p></o:p>

M                    移到屏幕的中间一行<o:p></o:p>

H                    移到屏幕的第一行<o:p></o:p>

e                    移到下一个字的结尾<o:p></o:p>

E                    移到下一个字的结尾,忽略标点符号<o:p></o:p>

(                    移到句子的开头<o:p></o:p>

)                    移到句子的结尾<o:p></o:p>

{                    移到段落的开头<o:p></o:p>

}                    移到下一个段落的开头<o:p></o:p>

0|                    移到当前行的第一列<o:p></o:p>

n|                    移到当前行的第n<o:p></o:p>

^                    移到当前行的第一个非空字符<o:p></o:p>

$                    移到当前行的最后一个字符<o:p></o:p>

+return             移到下一行的第一个字符<o:p></o:p>

-                    移到前一行的第一个非空字符<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

vi中添加文本<o:p></o:p>

<o:p> </o:p>

命令                    插入动作<o:p></o:p>

a                    在光标后插入文本<o:p></o:p>

A                    在当前行插入文本<o:p></o:p>

i                    在光标前插入文本<o:p></o:p>

I                    在当前行前插入文本<o:p></o:p>

o                    在当前行的下边插入新行<o:p></o:p>

O                    在当前行的上边插入新行<o:p></o:p>

:r file                    读入文件file内容,并插在当前行后<o:p></o:p>

:nr file            读入文件file内容,并插在第n行后<o:p></o:p>

escape                    回到命令模式<o:p></o:p>

^v char                    插入时忽略char的指定意义,这是为了插入特殊字符<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

vi中删除文本<o:p></o:p>

<o:p> </o:p>

命令                    删除操作<o:p></o:p>

x                    删除光标处的字符,可以在x前加上需要删除的字符数目<o:p></o:p>

nx                    从当前光标处往后删除n个字符<o:p></o:p>

X                    删除光标前的字符,可以在X前加上需要删除的字符数目<o:p></o:p>

nX                    从当前光标处往前删除n个字符<o:p></o:p>

dw                    删至下一个字的开头<o:p></o:p>

ndw                    从当前光标处往后删除n个字<o:p></o:p>

dG                    删除行,直到文件结束<o:p></o:p>

dd                    删除整行<o:p></o:p>

ndd                    从当前行开始往后删除<o:p></o:p>

db                    删除光标前面的字<o:p></o:p>

ndb                    从当前行开始往前删除n<o:p></o:p>

:n,md                    从第m行开始往前删除n<o:p></o:p>

dd$                    从光标处删除到行尾<o:p></o:p>

dcursor_command        删除至光标命令处,如dG将从当产胆行删除至文件的末尾<o:p></o:p>

^hbackspace            插入时,删除前面的字符<o:p></o:p>

^w                    插入时,删除前面的字<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

修改vi文本<o:p></o:p>

<o:p> </o:p>

每个命令前面的数字表示该命令重复的次数<o:p></o:p>

命令                    替换操作<o:p></o:p>

rchar                    char替换当前字符<o:p></o:p>

R text escape         text替换当前字符直到换下Esc<o:p></o:p>

stext escape           text代替当前字符<o:p></o:p>

Scctext escape  text代替整行<o:p></o:p>

cwtext escape        将当前字改为text<o:p></o:p>

Ctext escape          将当前行余下的改为text<o:p></o:p>

cG escape             修改至文件的末尾<o:p></o:p>

ccursor_cmd text escape      从当前位置处到光标命令位置处都改为text<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

vi中查找与替换<o:p></o:p>

<o:p> </o:p>

命令                    查找与替换操作<o:p></o:p>

/text                    在文件中向前查找text<o:p></o:p>

?text                    在文件中向后查找text<o:p></o:p>

n                    在同一方向重复查找<o:p></o:p>

N                    在相反方向重复查找<o:p></o:p>

ftext                    在当前行向前查找text<o:p></o:p>

Ftext                    在当前行向后查找text<o:p></o:p>

ttext                    在当前行向前查找text,并将光标定位在text的第一个字符<o:p></o:p>

Ttext                    在当前行向后查找text,并将光标定位在text的第一个字符<o:p></o:p>

:set ic                    查找时忽略大小写<o:p></o:p>

:set noic         查找时对大小写敏感<o:p></o:p>

:s/oldtext/newtext   newtext替换oldtext<o:p></o:p>

:m,ns/oldtext/newtext     m行通过n,用newtext替换oldtext<o:p></o:p>

&                    重复最后的:s命令<o:p></o:p>

:g/text1/s/text2/text3      查找包含text1的行,用text3替换text2<o:p></o:p>

:g/text/command           在所有包含text的行运行command所表示的命令<o:p></o:p>

:v/text/command           在所有不包含text的行运行command所表示的命令<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

vi中复制文本<o:p></o:p>

<o:p> </o:p>

命令                    复制操作<o:p></o:p>

yy                    将当前行的内容放入临时缓冲区<o:p></o:p>

nyy                    n行的内容放入临时缓冲区<o:p></o:p>

p                    将临时缓冲区中的文本放入光标后<o:p></o:p>

P                    将临时缓冲区中的文本放入光标前<o:p></o:p>

"(a-z)nyy        复制n行放入名字为圆括号内的可命名缓冲区,省略n表示当前行<o:p></o:p>

"(a-z)ndd        删除n行放入名字为圆括号内的可命名缓冲区,省略n表示当前行<o:p></o:p>

"(a-z)p                    将名字为圆括号的可命名缓冲区的内容放入当前行后<o:p></o:p>

"(a-z)P                    将名字为圆括号的可命名缓冲区的内容放入当前行前<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

vi中撤消与重复<o:p></o:p>

<o:p> </o:p>

命令                    撤消操作<o:p></o:p>

u                    撤消最后一次修改<o:p></o:p>

U                    撤消当前行的所有修改<o:p></o:p>

.                    重复最后一次修改<o:p></o:p>

,                    以相反的方向重复前面的fFtT查找命令<o:p></o:p>

;                    重复前面的fFtT查找命令<o:p></o:p>

"np                    取回最后第n次的删除(缓冲区中存有一定次数的删除内容,一般为9)<o:p></o:p>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值