Vim 存活指南

199 阅读3分钟

Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient.

www.vim.org/

为什么要学习 Vim

  1. Keyboard Driven, 使用 Vim,你可以专注于程序/文本,不会分散注意力;
  2. 极强的可定制性,可扩展性,使用 Vim,你可以打造一个独一无二的属于你自己的编辑器,在这一点上,我认为唯有 Emacs 可以与之较量;
  3. Vim 是一种文本操作的模式,因此,即使你不使用 Vim 编辑器,你也可以在其它编辑器(如 Vs Code, Jetbrains, Sublime, Emacs...)中使用 Vim,Enjoy both worlds!
  4. Vim 很有趣。

使用 Vim 的方式

  1. Vim Editor(支持 VimScript 配置)
  2. Neovim(支持 VimScript 和 Lua 配置)
  3. Emacs + evil 插件(个人认为最好的 Vim 插件) *
  4. Vscode + Vim 插件
  5. Vscode + Vscode-neovim 插件(个人推荐,可以原生支持绝大多数 Neovim 插件) *
  6. JetBrains + IdeaVim 插件(该插件很强大) *

Vim 四种模式

  1. Insert Mode: 插入模式,类似于其他编辑器,用于文本的输入;
  2. Normal Mode: 普通模式,此模式下键盘上的所有按键均可以映射为命令;
  3. Visual Mode: 选择模式,可以选择文本,组合为可以操作的文本对象;
  4. Command Mode: 命令模式,在普通模式下输入 : 进入命令模式,可以执行一些预设的或自定义的方法,可以认为 Command Mode 属于 Normal Mode。

Vim 基础操作

输入i进入 Insert Mode,输入ESC进入 Normal Mode

Normal Mode 下:

  1. :q: 退出 Vim;
  2. :q!: 退出且不保存;
  3. :w: 保存;
  4. :wq: 保存之后退出;
  5. :saveas: 另存为;
  6. /: 搜索。

Vim 是一门操作文本的语言

可以把 Vim 视为一门专为操作文本而设计的语言,其包含着一般语言所具有的动词、修饰词、名词等。

动词

  1. d: delete,删除;
  2. y: yank,复制;
  3. c: change,修改;
  4. >: indent,缩进;
  5. v / V: visual select,选择文本;
  6. ...

名词

  1. w: word,一个单词;
  2. ): sentence,一句话;
  3. }: paragraph,一段话;
  4. t: tag,标签;
  5. ...

修饰词

修饰词用于修饰名词,组合为可以操作的文本对象。

  1. i: in,内部,如 iw 表示单词内部;
  2. a: around,周围;
  3. f: forward,向前搜索一个字符,如 fo 表示从当前点到 o,包括 o
  4. t: to,向前搜索一个字符,如 to 表示从当前点到 o,但不包括 o
  5. /: search,在当前 buffer 中搜索,如 d/to<CR> 表示删除从当前点到 to 的所有字符;
  6. Number: 数量修饰,如 2w 表示两个单词;
  7. ...

Examples

  1. dd: 删除当前行;
  2. cc: 修改当前行;
  3. yy: 复制当前行;
  4. >>: 缩进当前行;
  5. dw / diw: 删除一个单词;
  6. d): 删除一句话;
  7. d}: 删除一段话;
  8. d2w: 删除两个单词;
  9. yi": 复制 "" 内的文本;
  10. ct<: 修改当前点到 < 的文本。

移动

上下左右

  1. j: 向下移动;
  2. k: 向上移动;
  3. h: 向左移动;
  4. l: 向右移动。

其他常用移动方法

* 向前:指光标右下侧;

* 向后:指光标左上侧。

  1. 0: 移动至行首;
  2. $: 移动至行尾;
  3. gg: 移动至文件顶端;
  4. G: 移动至文件结尾;
  5. f": 移动至 " 处,光标在 "
  6. t": 移动至 " 处,光标在 " 前面;
  7. w: 向前移动一个单词;
  8. b: 向后移动一个单词;
  9. ): 向前移动一句话;
  10. (: 向后移动一句话;
  11. }: 向前移动一段话;
  12. {: 向后移动一段话;
  13. ...

撤销/复原

  1. u: undo,撤销操作;
  2. Ctrl+r: 复原。

重复

  1. .: dot,重复执行上一次操作;
  2. qa: 录制一个名为 a 的宏;
  3. @a: 执行宏 a

总结

本文涉及了 Vim 的一些基础操作,考虑到本文是为了使初学者适应 Vim,在 Vim 中“存活”,对于 Vim 的定制性、扩展性、在其他流行编辑器中的使用并未深入讨论,但我认为其已经足够强大到替代原有的编辑器了,希望读者阅读本文后,能够不再惧怕 Vim,享受 Vim。