文件编辑命令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里 #此处新建的文件放到了当前操作目录下 :n1,n2w 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:将n1到n2行的内容作为Cmd命令的输入内容,若不指定n1和n2,则将整个文件所有内容输入 :r !Cmd:将命令运行的结果写入当前行位置 环境设置命令: :set autoindent:缩进每一行,使之与前一行相同,常用于程序的编写 :set noautoindent:取消缩进 :set number:在编辑时显示行号 :set nonumber:不显示行号 :set ruler:在屏幕底部显示光标所在行、列的位置 :set noruler:不显示光标所在行、列的位置 |
|
来自: BIOINFO_J > 《Linux system》