前言

Vim作为Linux系统使用最为广泛的文本编辑器,使用Linux系统的人都难以避免用到它,刚开始接触到Vim的时候,根本不知道怎么用这玩意,上网搜过教程后才知道它的强大,渐渐的爱上了这种完全靠键盘编辑的模式,我觉得使用Vim最大的障碍就是数不清的命令,所以写一篇文章来记录以下我认为比较常用的命令。


基础使用

首先Vim存在两种模式,normal模式和insert模式:

  • normal模式:使用Vim打开一个文本文件后,即进入normal模式,在这个模式下不能输入字符到文件,需要转换到insert模式,输入i即可转换为insert模式。
  • insert模式:在这个模式下可以输入字符到光标处,用退格键删除光标处的字符,在这个模式左下角会出现--insert--字样,摁下esc键即可回到normal模式。

当你用Vim打开文件后,先摁下i进入insert模式,用方向键或者hjkl控制光标移动,用退格键删除字符,编辑好文件后,先按esc键回到normal模式,再输入:wq摁下回车即可保存,这就是Vim的基础使用。
基础使用命令总结:

  • i → Insert 模式,按 ESC 回到 Normal 模式
  • x → 删当前光标所在的一个字符。(在normal模式下)
  • :wq(回车) → 存盘 + 退出 (:w 存盘, :q 退出) (:w 后可以跟文件名)
  • hjkl → 光标移动

掌握以上命令,已经可以基本使用Vim了,但是仅使用这些命令编辑文件未免过于麻烦,效率太低所以还需要学习一些命令来更加方便的编辑文件。


进阶使用

以下命令都是normal模式下输入:
光标跳转:

  • 0 → 数字零,到行头
  • ^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
  • $ → 到本行行尾
  • g_ → 到本行最后一个不是blank字符的位置。
  • /pattern → 搜索 pattern 的字符串(如果搜索出多个匹配,可按n键到下一个)
  • NG → 到第 N 行 (注意命令中的G是大写的)
  • gg → 到第一行(相当于1G,或 :1)
  • G → 到最后一行

粘贴与复制:

  • y → 拷贝
  • yy → 拷贝当前行
  • dd → 删除当前行,并把删除的行存到剪贴板里
  • p → 粘贴剪贴板到当前位置之后
  • P → 粘贴剪贴板到当前位置之前

插入新行:

  • a → 在光标后插入
  • o → 在当前行后插入一个新行
  • O → 在当前行前插入一个新行

Undo/Redo:

  • u → undo
  • <Ctrl-r> → redo

打开与保存:

  • :e <path/to/file> → 打开一个文件
  • :w → 存盘
  • :saveas <path/to/file> → 另存为 <path/to/file>
  • :x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)
  • :q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。
  • :bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(可以使用:n到下一个文件)

重复命令:

  • . → (小数点) 可以重复上一次的命令
  • N<command> → 重复某个命令N次

自动提示与补全:

  • <Ctrl-p>或是<Ctrl-n>(在insert模式下)

帮助:

  • :help → 帮助
  • :help<command> → 显示相关命令的帮助

参考文章

简明 VIM 练级攻略