<Linux> VIM 命令

xiaoxiao2021-02-28  87

VIM 命令列表     进入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 :光标右移一个字j至字尾     ) :光标移至句尾     ( :光标移至句首     }:光标移至段落开头     {:光标移至段落结尾     nG:光标移至第n行首     n+:光标下移n行     n-:光标上移n行     n$:光标移至第n行尾     H :光标移至屏幕顶行     M :光标移至屏幕中间行     L :光标移至屏幕最后行     0:(注意是数字零)光标移至当前行首     $:光标移至当前行尾     屏幕翻滚类命令     Ctrl+u:向文件首翻半屏     Ctrl+d:向文件尾翻半屏     Ctrl+f:向文件尾翻一屏     Ctrl+b;向文件首翻一屏     nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。     插入文本类命令     i :在光标前     I :在当前行首     a:光标后     A:在当前行尾     o:在当前行之下新开一行     O:在当前行之上新开一行     r:替换当前字符     R:替换当前字符及其后的字符,直至按ESC键     s:从当前光标位置处开始,以输入的文本替代指定数目的字符     S:删除指定数目的行,并以所输入文本代替之     ncw或nCW:修改指定数目的字     nCC:修改指定数目的行     删除命令     ndw或ndW:删除光标处开始及其后的n-1个字     do:删至行首     d$:删至行尾     ndd:删除当前行及其后n-1行     dd:删除当前行     x或X:删除一个字符,x删除光标后的,而X删除光标前的     Ctrl+u:删除输入方式下所输入的文本     dnl:向右删除n个字母     dnh:向左删除n个字母     dnj:向下删除n行     dnk:向上删除n行     搜索及替换命令 :     /pattern:从光标开始处向文件尾搜索pattern     ?pattern:从光标开始处向文件首搜索pattern     n:在同一方向重复上一次搜索命令     N:在反方向上重复上一次搜索命令     :s/p1/p2/g:将当前行中所有p1均用p2替代     :n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代     :g/p1/s//p2/g:将文件中所有p1均用p2替换     选项设置     all:列出所有选项设置情况     term:设置终端类型     ignorance:在搜索中忽略大小写     list:显示制表位(Ctrl+I)和行尾标志($)     number:显示行号     report:显示由面向行的命令修改过的数目     terse:显示简短的警告信息     warn:在转到别的文件时若没保存当前文件则显示NO write信息     nomagic:允许在搜索模式中,使用前面不带“”的特殊字符     nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始     mesg:允许vi显示其他用户用write写到自己终端上的信息     最后行方式命令     :n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下     :n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下     :n1,n2 d :将n1行到n2行之间的内容删除     :w :保存当前文件     :e filename:打开文件filename进行编辑     :x:保存当前文件并退出     :q:退出vi     :q!:不保存文件并退出vi     :!command:执行shell命令command     :n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指     定n1,n2,则表示将整个文件内容作为command的输入

    :r!command:将命令command的输出结果放到当前行。

配置文件     /etc/vimrc    针对所有用户     ~/.vimrc    针对当前用户

 vim全局替换命令 语法为 :[addr]s/源字符串/目的字符串/[option] 全局替换命令为::%s/源字符串/目的字符串/g [addr] 表示检索范围,省略时表示当前行。 如:“1,20” :表示从第1行到20行; “%” :表示整个文件,同“1,$”; “. ,$” :从当前行到文件尾; s : 表示替换操作 [option] : 表示操作类型 如:g 表示全局替换;  c 表示进行确认 p 表示替代结果逐行显示(Ctrl + L恢复屏幕); 省略option时仅对每行第一个匹配串进行替换; 如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义 下面是一些例子: #将That or this 换成 This or that :%s/\(That\) or \(this\)/\u\2 or \l\1/ —-  #将句尾的child换成children :%s/child\([ ,.;!:?]\)/children\1/g —- #将mgi/r/abox换成mgi/r/asquare :g/mg\([ira]\)box/s//mg//my\1square/g    <=>  :g/mg[ira]box/s/box/square/g —- #将多个空格换成一个空格 :%s/  */ /g —- #使用空格替换句号或者冒号后面的一个或者多个空格 :%s/\([:.]\)  */\1 /g —- #删除所有空行 :g/^$/d —- #删除所有的空白行和空行 :g/^[  ][  ]*$/d —- #在每行的开始插入两个空白 :%s/^/>  / —- #在接下来的6行末尾加入. :.,5/$/./ —- #颠倒文件的行序 :g/.*/m0O  <=> :g/^/m0O —- #寻找不是数字的开始行,并将其移到文件尾部 :g!/^[0-9]/m$ <=> g/^[^0-9]/m$ —- #将文件的第12到17行内容复制10词放到当前文件的尾部 :1,10g/^/12,17t$ ~~~~重复次数的作用 —- #将chapter开始行下面的第二行的内容写道begin文件中 :g/^chapter/.+2w>>begin —- :/^part2/,/^part3/g/^chapter/.+2w>>begin —- :/^part2/,/^part3/g/^chapter/.+2w>>begin|+t$

转载请注明原文地址: https://www.6miu.com/read-36403.html

最新回复(0)