关键词不能为空

当前您在: 主页 > 英语 >

Vi常用命令

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-14 02:55
tags:

-

2021年2月14日发(作者:briefcase)


进入


vi


的命令



.


............................. .................................................. ..................................


1



移动光标类命令



.

< br>............................................... .................................................. .............


1



屏幕翻滚类命令



.

< br>............................................... .................................................. .............


2



编辑插入文本类命令



.


............................................. .................................................. .......


3



删除命令



.


.................................................. .................................................. ......................


5



搜索及替换命令



.

< br>............................................... .................................................. .............


6



选项设置



.


.................................................. .................................................. ......................


8



组合命令



.


.................................................. .................................................. ....................


1


0


最后行方式命令



.

< br>............................................... .................................................. ...........


1


4


寄存器操作



.


................................................. .................................................. .................


1


5



进入


vi


的 命令



vi filename :


打开或新建文件,并将光标置于第一行首




vi +n filename


: 打开文件,并将光标置于第


n


行首




vi + filename


:打开文件,并将光标置于最后一行首




vi +/pattern filename


:打开文件,并将光标置于第一个与


pattern


匹配的串处




vi -r filename


:在上次正用


vi


编辑时发生系统崩溃,恢复


filename



vi filename....filename


:打开多个文件,依次进行编辑






移动光标类命令



h


:光标左移一个字符




l


:光标右移一个字符




space


:光标右移一个字符




Backspace


:光标左移一个 字符




k



Ctrl+p


:光标上移一行




j



Ctrl+n


:光标下移一行




Enter


:光标下移一行




w



W


:光标右移一个字至字首




b



B


:光标左移一个字至字首




e



E


:光标右移一个字至字尾




)


:光标移至句尾




(


:光标移至句首




}


:光标移至段落开头




{


:光标移至段落结尾






nG< /p>


:光标移至第


n


行首



n+


:光标下移


n




< br>n-


:光标上移


n


< p>



n$$


:光标移至第< /p>


n


行尾




H


:光标移至屏幕顶行




M


:光标移至屏幕中间行




L


:光标移至屏幕最后行




0



(注意 是数字零)光标移至当前行首




$$


:光标移至当前行尾




^



光标移到行首




f



光标移到当前光标位置后面的第一个指定的字符下



F



光标移到当前光标位置前面的第一个指定的字符下



t



光标移到当前光标位置后面的第一个指定的字符前



T



光标移到当前光标位置前面的第一个指定的字符前



%



光标移动到与当前括号匹配的括号处



:n



光标移动到指定行





按数字:


0


:移到文章的开头。




G

< p>
:移动到文章的最后。




w


:光标跳到下个字的开头





e


:光标跳到下个字的字尾





b

< br>:光标回到上个字的开头




按 :


#l


:光标移到该行的第


#


个位置,如:


5l,56l


< br>




跳至指定的行




Ctrl + g


列出光标所在行的行号。




#G


:例如,


15G


,表示移动光标至文章的第


15


行行首





14.


光标控制



k:


上移



nk


上移


n




j:


下移



nj


下移


n



< /p>


将光标移到第


n


行,按下



mk


将光标移到第


m


行,按下




即将第


n



m


的行存 到


a


寄存器,以此类推,


b

< p>


c........


寄存器等

< br>




屏幕翻滚类命令



Ctrl+u


:向文件首翻半屏




Ctrl+d


:向文件尾翻半屏




Ctrl+f


:向文件尾翻一屏




Ctrl



b


;向文件首翻一屏




nz


:将第


n


行滚至屏幕顶 部,不指定


n


时将当前行滚至屏幕顶部。




zz



将当前行置于屏幕中央



zt



将当前行置于屏幕顶端



zb



将当前行置于屏幕底端





编辑插入文本类命令



i


:在光标前




I


:在当前行首




a


:光标后




A


:在当前行尾




o


:在当前行之下新开一行




O


:在当前行之上新开一行




r


:替换当前字符




R


:替换当前字符及其后的字符,直 至按


ESC





s


:从当前光标位置处开始,以输入 的文本替代指定数目的字符




S


:删除指定数目的行,并以所输入文本代替之




ncw



n CW


:修改指定数目的字




nCC


:修改指定数目的行




J



删除换行符



u



取消上次操作



ctr-R



重做



c



修改指定的内容,和


d


相似

< p>


p



将删除缓冲区中的内容插入光标当前的位置



y



复制




vi a b c


:n

< p>
跳至下一个文件,


:e#


回到刚才编辑的文件。< /p>



比如当前编辑文件为


a



:n


跳至


b,



:n


跳至


c,:e#


回到


b,


想回到


a


的话用


:ea



打开一个


,vi


文件名



然后在


vi


的命令输入状态下输入



:sp


另外一个文件的路径及文件名





如此就可以在一个窗口打开


3


个文件了。



可以使用



ctrl




两次按



w



3


个文 件中切换





:edit



编辑一个新的文件



:previous


打开文件列表中的前一个文件



:next



打开文件列表中的后一个文件



:args



指定一个文件列表



:saveas


给文件改名



:file




给正在编辑的文件改名,但不保存



:split



将窗口分成上下两个窗口



:vsplit


将窗口分成左右两个窗口



:split


文件



为制定的文件打开新窗口



:new



打开新窗口,以及一个无名的缓冲区



:close



关闭窗口



ctr-w w


切换窗口



ctr-w [hjkl]


切换到窗口



ctr-w [HJKL]


移动窗口



:only



只保存当前窗口,其他窗口关闭



ctw-w +


增加当前窗口高度



ctw-w -


减小当前窗口高度



:qall



所有的窗口都退出



:wall



所有的窗口内容都写入文件



取消上一命令(


Undo


< br>



重复命令(


Redo





重复命令只能 在命令模式下工作,在该模式下按“


.


”键既可。执行一个重复 命令时,其结


果是依赖于光标当前位置的。




取消上一命令(


Undo

< p>




重复命令(


Redo





重复命令只能在命令模式下工作,在该模式下按“


.


”键既可。执行一个重复命令时,其结


果是依赖于光标当前位置的。

< p>


fx


往右移动到



x


字元上




Fx


往左移动到



x


字元上




tx


往右移动到



x


字元前




Tx


往左移动到



x


字元前




;


配合



f&t


使用,重复一次




,


配合



f&t


使用,反方向重复一次




/string


往右移动到有



string


的地方




?string


往左移动到有



string


的地方




n


配合



/&?


使用,重复一次




N


配合



/&?


使用,反方向重复一次



d


删除


(delete)



y


复制


(yank)



p


放置


(put)



c


修改


(change)


x








删除光标下的字符(



的缩写)



X








删除光标前的字符(



的缩写)



D








从当前位置删除到行尾(



的缩写)



dw







从当前位置删除到下一个单词开头



db







从当前位置删除到前一个单词的开头



diw






删除光标上的单词(不包括空白字符)



daw






删除光标上的单词(包括空白字符)



dG







删除到文末



dgg






删除到文首



如果你用




代替




,这会变成修改命令;而改用




,则变成拷贝命令





cw


」< /p>


:更改光标所在处的字到字尾处





c#w



:例如 ,



c3w


」表示更改


3


个字




复制




「< /p>


yw



:将光标所在之处到字尾的字符复 制到缓冲区中。





#yw



:复制


#

< p>
个字到缓冲区





yy



:复制光标所在行到缓冲区。





#yy



:例如,



6yy


」表示拷贝从光标所在的该行“往下数”


6

行文字。




< br>p



:将缓冲区内的字符贴到光标所在位置。注意:所有 与“


y


”有关的复制命令都必须与


“< /p>


p


”配合才能完成复制与粘贴功能。





daB


删除


{}


及其内的内容



(


在非


v


可视模式下


)



diB


删除


{}


中的内容




ab


选择


()


中的内容




ib


选择


()


中的内容


(


不含


() )



aB


选择


{}


中的内容




iB


选择


{}


中的内容


(


不含


{} )



·


变量定位




gd


转到光标下局部变量的定义处




Gd


转到光标下全局变量的定义处




:r filename


将文件



filename


插入在当前行之下




复制与剪切




xp


交换前后两个字符的位置




ddp


上下两行的位置交换




:g/fred/t$$


拷贝行,从


f red


到文件末尾


(EOF)


删除命令



ndw


ndW


:删除光标处开始及其后的


n-1


个字




do


:删至行首




d$$


:删至行尾




ndd


:删除当前行及其后


n-1





x



X


:删除一个字符 ,


x


删除光标后的,而


X


删除光标前的




Ctrl +u


:删除输入方式下所输入的文本





u


撤消前一条命令的结果



.


重复最后一条修改正文的命令






搜索及替换命令



/pattern< /p>


:从光标开始处向文件尾搜索


pattern



?pattern


:从光标开始处向 文件首搜索


pattern



n


:在同一方向重复上一次搜索命令




N


:在反方向上重复上一次搜索命令





s/p1/p2/g


:将当前行中所有


p1


均用


p2


替代





n1,n2s/p1/p2/g


:将第


n1



n2


行中所有


p1


均用


p2


替代

< p>




g/p1/s// p2/g


:将文件中所有


p1


均用


p2


替换




/



向后搜索



?



向前搜索



``



跳转到前一个位置



`a



跳转到标记为


a

的位置



ma



将光标的当前位置标记为


a


`[



跳转到最后一次修改的起始位置



`]



跳转到最后一次修改的结束位置



`



跳转到上次编辑该文件时光标最后停留的位置



:s



替换



:substitute


替换



:%s/a/a/c


对所有行替换



:m,ns/a/a/c


对从


m



n


行替换




rc

















c


替换光标所指向的当前字符



nrc
















c


替换光标所指向的前



n


个字符



5rc
















c


替换光标所指向的前



5


个字符



x
















删除光标所指向的当前字符



nx















删除光标所指向的前



n


个字符



3x















删除光标所指向的前



3


个字符



dw















删除光标右侧的字



ndw














删除光标右侧的



n


个字



3dw














删除光标右侧的



3


个字



db















删除光标左侧的字



ndb














删除光标左侧的



n


个字



5db














删除光标左侧的



5


个字



dd















删除光标所在行,并去除空隙



ndd














删除



n


行内容,并去除空隙



3dd














删除



3


行内容,并去除空隙




从正文中删除的内容(如字符、字或行)并没有真正丢失,而是被剪切并复制到了一个



内存缓冲区中。用户可



将其粘贴到正文中的指定位置。完成这一操作的命令是:



p


小写字母



p


,将缓冲区的内容粘贴到光标的后面



P


大写字母



P


,将缓冲区的内容粘贴到光标的前面



yy















复制当前行到内存缓冲区



nyy














复制



n


行内容到内存缓冲区



5yy














复制



5


行内容到内存缓冲区



/str1












正向搜索字符串



str1


n
















继续搜索,找出



str1


字符串下次出现的位置



?str2












反向搜索字符串



str2



给出一个字符串,可以通过搜索该字符串到达指定行。如果希 望进行正向搜索,将待搜



索的字符串置于两个“



/

< p>
”之间;如果希望反向搜索,则将字符串放在两个“


?

”之间。例如:



:/str/























正向搜索,将光标移到下一个包含字符串



str


的行



:?str?























反向搜索,将光标移到上一个包含字符串



str


的行



:/str/w file

















正向搜索,并将第一个包含字符串



str


的行写入



file



文件



:/str1/,/str2/w file









正向搜索,并将包含字符串



str1


的行至包含字符串



s


tr2


的行写




正文替换



利用



:s


命令可以实现字符串的替换。具体的用法包括:



:s/str1/str2/








用字符串



str2


替换行中首次出现的字符串



str1


:s/str1/str2/g







用字符串



str2


替换行中所有出现的字符串



str1


:.,$$ s/str1/str2/g



用字符串



str2


替换正文当前行到末尾所有出现的字符串



str1


:1,$$ s/str1/str2/g



用字符串



str2


替换正文中所有出现的字符串



str1


:g/str1/s//str2/g




功能同上



从上述替换命令可以看到:


g


放在命令末尾,表示对搜索字符串的每次出现进行替换;



不加



g


,表示只对搜索



字符串的首次出现进行替换;


g


放在命令开头,表示对正文中所有包含搜索字符串的行



进行替换操作。



< br>:


s/p1/p2/g


:将当前行中所有


p1


均用


p2


替代

< p>




n1,n2s/p 1/p2/g


:将第


n1


< p>
n2


行中所有


p1


均用< /p>


p2


替代





:%s/old_word/new_word/g


这个指令是于在整个文件中替换特定字符串






字串搜寻与取代



s(substit ute)


指令可搜寻某行列范围。



g (global)


指令则可搜寻整个编辑缓冲区的资料。



s


指令以第一个满足该条件的字串为其取代的对象,若该行有数个满 足该条



件的字串,也仅能取代第一个,若想取代所有的字串则 需加上


g


参数。




7)


查找替换




/


把狭义单词




写到



搜索命令






/


把广义单词




写到



搜索命令






:g/str/s/str1/str2/g



第一个


g


表 示对每一个包括


s1


的行都进行替换,




第二个


g


表 示对每一行的所有进行替换




包括< /p>


str


的行所有的


str1


都用


str2


替换




:%s/f $$/for$$/g


将每一行尾部的“


f




f


键和空格键)替换为


f or



:%s/^/mv /g


在每一行的头部添加“


mv




mv


键和空格键)




:s/fred/a/g


替换


fred



register a


中的内容,呵呵




:g/


显示含





的 行




#


替 换一个


visual


区域




#


选择一个区域,然后输入



:s/Emacs/Vim/


等等,


vim


会自动进入


:


模式




:'<,'>s/Emacs/Vim/g < /p>


前面的


'<,'>


vim


自动添加的




#


在多个文档中搜索




:bufdo /searchstr



:argdo /searchstr



全局替换



语法为



:[addr]s/


源字符串


/


目的字符串


/[option]


全局替换命令为:


:%s/


源字符串


/


目的字符串


/g


[addr]


表示检索范围,省略时表示当前行。



如:



1



2 0




:表示从第

1


行到


20


行;

< br>



%




:表示整个文件,同“


1,$$


< p>




. ,$$




:从当前行到文件尾;



s :


表示替换操作



[option] :


表示操作类型



如:


g


表示全局替换


;


c


表示进行确认



p


表示替代结果逐行显示(


Ctrl + L


恢复屏幕)



省略


option


时仅对每行第一个匹配串进行替换;



如果在源字符串和目的字符串中出现特殊字符,需要用”



”转义



选项设置



all


:列出所有选项设置情况




term


:设置终端类型




ignorance


:在搜索中忽略 大小写




list

< br>:显示制表位


(Ctrl+I)


和行尾标志(

< p>
$$




number


:显示行号




report


:显示由面向行的命令 修改过的数目




terse


:显示简短的警告信息




warn


:在转到别的文件时若没保 存当前文件则显示


NO write


信息



< br>nomagic


:允许在搜索模式中,使用前面不带“


< /p>


”的特殊字符




nowrapscan


:禁止


vi


在 搜索到达文件两端时,又从另一端开始



mesg


:允许


vi


显示其他用户 用


write


写到自己终端上的信息




状态命令


< Ctrl+G >



命令显示在


vi

状态行上的


vi


状态信息,包括正在编辑的文件名、是否修 改过、当前行号、


文件的行数以及光标之前的行占整个文件的百分比。

< br>



autoindent



设置该选项,则正文自动缩进



ignorecase



设置该选项,则忽略规则表达式中大小写字母的区别



number





设置该选项,则显示正文行号



ruler








设置该选项,则在屏幕底部显示光标所在行、列的位置



tabstop






设置按



Tab


键跳过的空格数。例如



:set tabstop=n



n


默认值为



8


mk









将选项保存在当前目录的



.exrc


文件中




环境的设定



==========



set nu


设定资料的行号。




set nonu


取消行号设定。




set ai


自动内缩。




set noai


取消自动内缩。




17. vi


环境选项



Solaris ksh


noautoindent













nomodelines






















noshowmode


autoprint
















nonumber

























noslowopen


noautowrite














nonovice

























tabstop=8


nobeautify















nooptimize























taglength=0


directory=/var/tmp







paragraphs=IPLPPPQPP LIpplpipnpbtags=tags /usr/lib/tags


noedcompatible











prompt



























tagstack


noerrorbells













noreadonly























term=vt100


noexrc



















redraw



























noterse


flash




















remap




























timeout


hardtabs=8















report=5

























ttytype=vt100


noignorecase













scroll=11
























warn


nolisp



















sections=NHSHH HUuhsh+c










window=23


nolist



















shell=/bin/ksh



















wrapscan


magic




















shiftwidth=8





















wrapmargin=0


mesg





















noshowmatch






















nowriteany



For C-Shell:


setenv EXINIT


For Bourne or Korn Shell:


EXINIT=



For Korn Shell Only (alternate method):



typeset -x EXINIT=




.profile


里设置



vi


的环境选项



,


以上均测试过


-


-


-


-


-


-


-


-



本文更新与2021-02-14 02:55,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/654254.html

Vi常用命令的相关文章