这节课学习的是 Vim,因为之前学习过 Vim,所以这里对其进行简单的介绍。推荐一篇皓哥的文章:《简明 VIM 练级攻略》,英文版在这里《Learn Vim Progressively》

目录如下:

仅看上面的文章就足够日常使用了,下面仅给出部分命令。

Normal 模式下的部分命令:

  • :ls:显示打开的缓存。
  • :help {标题}:打开帮助文档,例如:
    • :help :w:打开:w的帮助文档。
    • :help w:打开w移动的帮助文档(w的作用是将光标移动到下一个单词的开头,如果中间含有特殊字符或标点符号的话,则会来到特殊字符或标点符号的位置。)

在移动光标时,也可以根据不同的场景需求,使用不同的字符。除了上面说到的w外,还有如下方式:

  • b:移动到当前单词的开头或上一个单词的开头。
  • e:移动到词尾。
  • 0:数字 0,移动到行首。
  • $:移动到行尾。
  • ^:移动到第一个非空格字符。
  • H:移动到当前屏幕的首行。
  • M:移动到当前屏幕的中间一行。
  • L:移动到当前屏幕的底部一行。
  • Ctrl+u:向上翻页。
  • Ctrl+d:向下翻页。
  • gg:移动到文件首行。
  • G:移动到文件末尾。
  • **:**行号Enter:来到指定的行。例如输入:12后按Enter,则光标将会定位在第 12 行。
  • 行号gg:例如20gg则会来到第 20 行。
  • 行号G:例如12G则会来到第 12 行。

以下命令用于改变括号或引号中的内容。

  • ci(:改变当前小括号中的内容。
  • ci[:改变当前中括号中的内容。
  • da';改变当前单引号中的内容,并将左右两侧的单引号删除。
  • da":作用同上,只不过是对双引号起作用。

可以使用:sp:vsp在同一终端下创建多个窗口,然后使用:w+hjkl的方式在各个窗口之间选择。如果你觉得每次使用:q退出当前窗口很麻烦的话,可以使用:qa退出全部的窗口。

如果想要将整个文件中的某个字符串替换为另一个字符串,则可以使用以下方式。该实例表示:将整个文件中的所有字符串bar替换成for

1
:%s/bar/for/g

如果你想在一行中,向后(右)找到首个距离光标最近的字符的话,可以使用f{字符}。例如fo,即在这一行中,将光标移动到第一个字符o的位置上。同理,如果想要向前(左)找到首个距离光标最近的字符的话,则可以使用F{字符}

如果想要来到光标右侧的首个字符m之前的那个字符,可以使用tm,那么执行命令之后,光标就会停留在字符m的左侧那个字符。同理,你可以试试T{字符}的效果。

dd表示删除光标所在的行,cc除了删除光标所在的行之外,还会进入 INSERT 模式。

对于其它的命令,在具体使用的时候可以看一看本文开头提到的文章。