VIM编辑器常用命令说明

时间:2021-01-02 17:00:36
no: 放置在boolean选项前表示关闭该选项,如:set number   ,set nonumber 自定义vim:   :edit ~/.vimrc   在命令行最后添加自己的命令,如高亮显示搜索结果等
  1. 移动光标   h j k l
  2. 删除字符  x   删除整行  dd     
    两行合并为一行,也就是删除两行之间的换行符: J
  3. 以word为单位的移动  w   3w
  4. 移动到行首和行尾   ^  $
  5. 移动到指定的字符上  fx    找下一个x字符(f意为find) ,如fl   3fl
    F向左方向搜索,如 Fh
  6. 匹配(),[],{}括号  %  
  7. 移动到指定行     文本首  gg   文本尾 G   指定行   34G      (G意为Go)
  8. 告诉当前位置   CTRL+G
  9. 滚来滚去    CTRL+U  使文本向下滚动半屏,也可以想象为在显示文本的窗口向上滚动半屏    CTRL+D  将窗口向下移动半屏,相当于使文本向上滚动了半屏
  10. 简单搜索   /string  ,如 /include,特殊字符: .*[]^%/?~$ ,搜索字符串包含这些字符需在字符前放置一个反斜杠,查找下一个按n,查找第三次出现输入”3n”。“?”命令与“/”命令相同,只是搜索方向相反.
    光标位于word上,按下“*”键,VIM将会取当前光标所在的word并将它作用目标字符串进行搜索。“#”命令是“*”命令的反向版。还可以使用命令计数,如“3*”查找第三次出现。/ab* ,匹配ab,abb,abbb, /\(ab\)*  ,匹配ab,abab,ababab;/ab\{3,5},匹配次数;/one\|two\|three,或匹配;/the\nword,匹配换行;/\<word\>,\<和\>匹配一个单词;
  11. 忽略大小写  :set ignorecase    :set noignorecase
  12. 高亮显示搜索结果   :set hlseyrch   :set nohlsearch
  13. 调理搜索命令   :set incsearch  在键入目标字符串的过程中,vim就同时开始搜索,按回车跳转到当前匹配到的位置
  14. 在两个位置之间跳转命令:``,因为“`”是代表上次命令行的位置,跳转命令还包括:/、n 。“:jumps”命令列出曾经跳转过的位置列表,最后一个跳转位置被特别以“>”号标记。
  15. 有名标记:ma:当前行被定义为a标记,可以定义a-z共26个标记;跳转到a标记“`a”;“:marks”命令查看一些特殊的标记。
  16. “d”命令后跟一个位移命令,删除光标到终点处的内容。如:dw,d4w(删除4个word),d$删除光标到最后,daw 在单词中间删除一个单词(delete a word)
  17. cw:删除一个word后并置身于insert模式,行为与dw类似(c1改变一个字符,c是change的意思);dd删除整行,cc改变整行;d$删除光标到结尾,c$改变光标到行尾内容;3d2w删除2个单词,重复3次,共删除6个单词;r命令为替代一个字符,无需使用ESC;
  18. x  代表d1(删除当前光标下字符)  X 代表dh(删除当前光标左边的字符) D代表d$(删除到行尾的内容) C代表c$(修改到行尾的内容) s代表c1(修改一个字符)  S代表cc(修改一整行)
  19. “.”命令在normal模式下是重复上次操作的命令,如/four ,执行cwfive,n(查找下个foure),输入“.”,继续替换four为five
  20. v 进入visual模式,可以通过方向键控制区域选择,然后使用d或者x命令删除,使用ctrl+v复制;
  21. 复制文本使用yy+p,y是yanking,放到寄存器;p是put的意思;y$复制光标到最后;
  22. :set list  可以清楚的看到以“$”表示的换行符和以“^I”表示的制表符
  23. :split,:vsplit 分隔窗口,切换窗口ctrl+w + (h/j/k/l/t/b) ,t:到顶部窗口;b:到底部窗口;ctrl+w+K:窗口向上提升一次; :qall  全部退出;:wall  全部写入保存;  :wqall 保存所有被修改的文件然后退出;
  24. vimdiff a.txt b.txt 以垂直方式显示两个文件的不同之处,可以比较下diff命令。  ]c:定位到下一个不同之处,[c:定位到上一个不同之处;
  25. 替换,:[range]substitute/from/to/[flags]   s代替substitute  ,:%s/Professor/Teacher/g  替换所有行,如替换一行 ::s/from/to/g ,替换所有行: :%s/from/to/G ,from可以正则表达式,如把行首的the替换为these,:s/^the/these/。如果被替换字符中有斜杠/,需要在前面增加反斜杠,更优雅方法::s+one/two+one or two+   作用于范围::1,5s/this/that/g 。只替换54行::54s/President/Fool/
  26. 标记的使用,使用mb 标记当前行为标记b,使用’b来把光标定位到标记
  27. :read filename   在当前行的后面追加读入的内容; :read !ls(读取当前目录下文件),!表示后面是一个命令;
  28. 操作子命令若要作用于以行为单位,则键入该操作两次;如dd,gg,gudu(行小写),gUgU(简写gUU)
  29. 比较文件的命令,diff,vimdiff
  30. 查看历史命令,如”:se<up>”,可以向上查看历史命令
  31. vim -x exam.txt  给文件加密;或者 :X
  32. 查看当前行的信息,包括字节数 g ctrl-G
  33. 插入模式,ctrl-w;删除一个单词,ctrl-u 删除当前行; ctrl-p(previous-match) 从前面的正文中搜索第一个单词并补齐;ctrl-n (next-match)向下找第一个单词并补齐;
  34. %s/\<very\>/wuguowei/g 匹配very单词,“\<” 和“/>”表示只有完整的单词才会被匹配
  35. ls | vim -    “vim -” 表示vim从标准输入的流是编辑内容;如 ps |vim -
  36. zf:创建折行,zo:打开折行,zc:关闭折行;折行相关的命令都是以z开头,z看起来是把一张纸折叠起来的样子。z字符后是一个便于记忆的命令。把一个段落折叠zfap,打开为zo;zf可以搭配任何位移的命令来创建折行;