分享

Linux系统文件编辑命令vi下所有编辑命令汇总

 BIOINFO_J 2017-05-08

文件编辑命令vi下所有编辑命令汇总

 进入插入模式命令:

i:在光标所在位置前插入文本(光标定位在一个字符上,插入位置在字符之前,相应文字后移)

I:将光标移动到所在行的行首,在其前输入文本

a:用于在光标所在位置追加文本(光标向右移动一个字符,在光标位置之前输入文本)

A:将光标移动到行尾,在行尾追加文本(与命令I相反)

o:在光标所在行的下一行插入空行,随后光标定位到该行,等待文本输入

O:在光标所在行的上面插入一行,光标转移至该行行首,等待输入文本

正文替换(替换后进入插入模式):

s:替换光标所在位置的字符(其功能是删除光标所在位置处的字符,然后在现有光标位置之前输入新的文本)

ns:替换从光标所在位置起的n个字符(包括光标处的字符)

cw:替换从光标位置起的一个词(其实是从光标位置到下一个空格,若光标位置在单词的首字母,则删掉的是整个单词,如在单词中件,则删除的是光标位置及以后的部分,并不是整个单词)

ncw:替换从光标位置起的n个词

cb:替换掉光标位置之前的一个词

ncb:替换掉光标位置之前的n个词

c$:替换从光标位置到行尾的所有字符

c0:替换掉从光标位置到行首的所有字符

编辑命令-光标定位,不进入插入模式:

hjkl:分别用于光标向左、向下、向上及向右移动一个字符

Ctrl+b:向文件开始方向移动一个整屏幕

Ctrl+f:向文件结束方向移动一个整屏幕

H:将光标移动到页面首行的行首,即shell左上角

nH:将光标移动到距离页面n行的行首处

M:将光标移动到页面显示部分的中间行的行首

L:将光标移动到页面最后一行的行首

nL:将光标移动到距离页面倒数第n行的行首处

w:将光标右移至下一个字的字首

e:如果光标位于一个字的内部,将光标转移至该字的字尾,如果位于字尾,则转移至下一个字的字尾

b:如果光标位于一个字的内部,将光标转移至该字的字首,如果位于字首,则转移至下一个字的字首

0:将光标移动到所在行的行首,与I命令一样,只是不进入插入模式

$:移动光标至所在行的行尾

^:移动到光标所在行的第一个字符(与命令0在功能上一样)

编辑命令-替换和删除:

rc:用字符c替换光标所指向的当前字符(c并不唯一,可以变更,如rm)

nrc:用字符c替换光标所指向的前n个字符

x:删除光标处的字符(与Delete功能相同)

nx:删除光标所在位置开始向右的n个字符(包含光标位置所在的字符)

dw:删除一个单词,若光标在某个词的中间,则从光标所在位置开始删除至词尾,并且连同空格一起删除

ndw:删除n个指定的单词

db:删除光标所在位置之前的一个词(如果在单词中间,则删除光标位置之前的单词内容)

ndb:删除光标所在位置之前的n个词

dd:删除光标所在的整行

ndd:删除光标所在行及其后n-1

编辑命令-复制和粘贴:

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

nyy:将光标所在行及其后面n-1行复制到缓冲区

p:将缓冲区的内容写到光标所在位置(其实是在光标所在行下方插入一行,然后将复制的内容粘贴到此行)

编辑命令-撤销和重复:

/str:往右移动到有str的地方(只能查找当前位置之后的内容,且只能查找一次,若从当前位置至文档结尾都没有此字符,会提示从文档开头查找)

str:往左移动到有str的地方

n:向相同的方向移动到有str的地方(与上面两个命令一起使用,使用时每按一次n,都会向相同的方向查找下一个字符)

N:向相反的方向移动到有str的地方

编辑命令-退出:

u:撤销上一步操作

.:重复执行前面刚完成的某个命令

ZZ:存盘退出

ZQ:作废退出

命令模式命令-退出(非插入模式下使用):

:n:直接输入要移动的行号,实现跳行

:q:退出vi

:wq:保存并退出vi

:q!:不保存退出vi

命令模式命令-文件相关命令(非插入模式下使用):

:w:保存内容

:w file:将当前编辑的内容写到file里 #此处新建的文件放到了当前操作目录下

:n1n2w file:将从n1行开始到n2行结束的行写入到file

:nw file:将第n行写到file文件中

:1,.w file:将从文件第一行到光标所在位置写到file

:.,$w file:将从光标当前位置起到文件结尾的所有内容写到file文件中

:r file:打开另一个文件file

:e file:新建file文件

:f file:把当前文件改名为file文件

命令模式命令-字符串搜索、替换及删除命令(非插入模式下使用):

:/str/:从光标当前位置开始向右移动到有str的地方

:str?:从光标当前位置开始向左移动到有str的地方

:/str/w file:将包含有str的行写入到文件file

:/str1//str2/w file:将从str1开始,到str2结束的内容写入到file

:s/str1/str2/:将第一个str1替换成str2

:s/str1/str2/g:将所有的str1替换成str2

:.,$ /str1/str2/g:将从当前位置到结尾的所有的str1替换为str2

命令模式命令-文本移动、复制及删除命令(非插入模式下使用):

:n1,n2 co n3:将从n1开始到n2为止的所有内容复制到n3后面

:n1,n2 m n3:将从n1开始到n2为止的所有内容移动到n3后面

:d:删除当前行

:nd:删除从当前开始的n

:n1,n2 d:将从n1开始到n2为止的所有内容

:.,$ d:删除从当前行到结尾的所有内容

:/str1//str2/d:将从str1开始,到str2结束的所有内容删除

命令模式命令-执行shell命令(非插入模式下使用):

:!Cmd:运行shell命令Cmd

:n1,n2 w Cmd:将n1n2行的内容作为Cmd命令的输入内容,若不指定n1n2,则将整个文件所有内容输入

:r Cmd:将命令运行的结果写入当前行位置

环境设置命令:

:set autoindent:缩进每一行,使之与前一行相同,常用于程序的编写

:set noautoindent:取消缩进

:set number:在编辑时显示行号

:set nonumber:不显示行号

:set ruler:在屏幕底部显示光标所在行、列的位置

:set noruler:不显示光标所在行、列的位置

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多