文本编辑器VIM

一、vi的工作模式
  命令模式(ESC键)
  插入模式(i、a、o键)
  编辑模式(:键)

二、插入命令
  a 在光标后附加文本
  A 在本行行末附加文本
  i 在光标前插入文本
  I 在本行开始插入文本
  o 在光标下插入新行
  O 在光标上插入新行

三、定位命令
  h方向左键,同←
  j 方向下键,同↓
  k 方向上键,同↑
  l 方向右键,同→
  $ 移至行尾
  0(零) 移至行首
  H 移至屏幕上端
  M 移至屏幕中央
  L 移至屏幕下端

刚开始还莫名其妙,命名键盘已经有上下左右了,为什么还要hjkl键,后来才觉得,这样做方便命令的编写

四、删除命令
  x 删除光标所在处字符
  nx 删除光标所在处后n个字符
  dd 删除光标所在行,ndd删除n行
  dG 删除光标所在行到行尾的内容
  D 删除从光标所在处到行尾
  :n1,n2d 删除指定范围的行

五、复制和剪切命令
  yy、Y 复制当前行
  nyy、nY 复制当前行以下n行
  dd 剪切当前行
  ndd 剪切当前行以下n行
  p、P 粘贴在当前光标所在行下或行上

实际上dd就是将当前行删掉,同时保存在类似剪贴板那里,如果你不复制到别的地方就相当于删除了这一行

五、替换和取消命令
  r 取代光标所在处字符,不进入编辑模式,在命令模式下按r再按另外一个字符,即可替换光标所在处字符
  R 从光标所在处开始替换字符,按Esc结束
  u 取消上一步操作(undo)

六、搜索和替换命令
  /string 在命令行下按/和你要查找的字符串如:/baitouhe ,如果存在baitouhe将会高亮显示
  n 当你找到很多个baitouhe字符串时,可以按n跳到下一个baitouhe出现的位置
  :%s/old/new/g 该命令是将整个文件个old字符替换为new,如:%s/baitouhe/baitouhe.com/g 将会把文件中所有的baitouhe替换为baitouhe.com
  :%n1,n2s/old/new/g 和上面类似,只是添加了n1,n2限定替换范围是在n1行到n2行中间(注意不要漏了后面加s)

七、保存和退出命令
  :w 保存修改(write)
  :w 文件名 保存在指定文件(另存为)
  :wq 保存修改并退出(write and quit)
  ZZ 快捷键,保存修改并退出(注意没有加:)
  :q! 不保存修改退出(!表示强制执行)
  :wq! 与wq相比,该命令可以强制修改只读文件!

八、其它技巧
1、导入命令执行结果::r !命令
  它可以实现将命令的执行结果写入到当前vi 所编辑的文件光标所在位置的下一行
  如:r !ls /etc/sysconfig

2、自定义快捷键:map 快捷键 命令
如:map ^p i(baitouhe’s blog http://www.baitouhe.com) 即定义了快捷键ctrl + p,当按下ctrl + p时进入插入模式(i),插入字符(baitouhe’s blog http://www.baitouhe.com),最后再回到命令行模式
提示:^p 中^不是shift+6再按p,而是ctrl + v + p,你会发现p 会变成蓝色大写的,也可以按死ctrl + v,放开v再按p

3、连续行注释
:n1,n2s/^/#/g ,^表示行首,该命令表示在n1到n2行行首添加字符#
:n1,n2s/^#//g , 该命令表示将n1-n2行首#字符替换为空字符(去注释)
:n1,n2s/^////g , 该命令表示在n1-n2行首添加字符//,因为系统无法直接识别//,所以要通过转义字符 / / 来表示//

4、替换定义:ab 原来的字符 替换后的字符
  如:ab myblog http://www.baitouhe.com定义了myblog 即为http://www.baitouhe.com,在vi里面输入myblog按回车或者空格,会自动替换为http://www.baitouhe.com.
取消替换直接:unab myblog即可

5、Vim默认设置
  前面所学的定义快捷键、替换只是对当前编辑有效,关掉此文件时,所有的设置都将会失效,如果要修改默认的配置,则可以编辑文件~/.vimrc,直接里面写入命令,在vim打开时会自动执行。

九、总结
  Vi功能很强大,非常适合在文字中断下使用,因为当你熟练掌握它的操作时,键盘是你唯一的操作工具,全屏幕显示,完全摆脱鼠标,可以很快速地操作。不过强大的东西往往不是容易掌握的,很多按键、命令都需要多使用才会记得牢。上面的仅仅是vi的基本操作,深入学习还得买本著作。

原文地址:https://www.cnblogs.com/hlb430/p/2613054.html