vim 备忘

vim 备忘

Author: huyikai

toolvim

1.vim 介绍

VIM 常用的有四个模式,:

模式间切换方法: (1)命令模式下,输入:后,进入末行模式 (2)末行模式下,按esc慢退、按两次esc快退、或者删除所有命令,可以回到命令模式 (3)命令模式下,按下ia等键,可以进入编辑模式 (4)编辑模式下,按下esc,可以回到命令模式

1 助记符

vim 上的所有定义的快捷键都是有一定的意义的,在这里我先把常用的一些列出来。

1.1 正则表达式相关

1.2 移动类(motion)

h(左)、l(右)、j(上)、k(下)、f(front)、b(back)、u(up)

1.3 操作类(operator)

d(delete)、i(insert)、a(append)、c(change)、y(copy)、p(paste)

1.4 一般的缩写

w(word)、s(sentence)

2 理解 vim 中三种常用模式

vim 里面有好几种模式,但是因为我这里介绍的是在目前的编辑器里面装 插件,所以像命令模式这种用来保存文件、退出文件的就不介绍了。

  1. Nomal mode(默认模式,因为使用该模式场景最多,所有定为默认模式)。
  2. Insert mode (插入模式—少用,用了它 vim 就成 「哑巴」了)。
  3. Visual mode(可视模式,取名叫光标模式或者选择模式可能还比较好理解)

3 教程篇

当我们记住上面的助记符之后,我们就可以像写英文短语一样操作了。

vim 快捷键语法:[operator][count][motion],例如 删两个单词就是 d2w,operator 和 motion 我已经在前面给出来一些了。

3.1 移动光标

3.1.1 最基本的 h、j、k、l

最基本的上下左右移动(跟键盘上下左右的键盘效果相同,但是往往方向键在键盘的右下方,离主键盘区较远,这个也相对比较有优势):

移动属于 motion,所以在前面加上「count」就可以移动多行了,比如向上移动 10 行,就可以 10k。往往编辑器会有行号,定位需要做个加减法,如果采用的是相对行号,用这个就比较方便。

3.1.2 快速移动

w:光标往前移动一个词 b:光标向后移动一个词 0:移动光标到当前行首 ^:移动光标到当前行的第一个字母位置(注意与 0 的区别) $:移动光标到行尾 fx:移动光标到当前行的下一个 x 处(x 为任意字母) tx:和上面一个命令类似,移动到 x 的左边一个位置 ):移动光标到下一个句子 ( :移动光标到上一个句子 {:移动光标到上一段 }:移动光标到下一段

3.1.3 快速定位

在刚才介绍了通过相对行号来进行移动到行的光标,还有采用绝对定位来移动的。那就是 gg。 语法: [num]gg

书签功能:这个功能也是很方便,很少有编辑器有的功能,单独列出来讲,强烈推荐。

3.1.3 屏幕滚动

3.2 剪切、复制、粘贴

在 normal 模式下是没有删除操作的,d 这种删除也是剪切。

以上全是 normal 模式

3.3 编辑模式

在前面也说了,进入编辑模式也就变成了「哑巴」vim 了,就跟一般的编辑器没什么区别了。很多人就知道用 i 可以进入,还有很多命令可以让你聪明的进入。

3.4 可视模式

要是前面都学会了,可视模式就比较简单了,而且你将会经常用到这个模式。我会把这个模式称做「选择模式」,接下来我们就来探索一下是如果选择的。

其实也就两个关键的点:v(字符选择)、V(行选择)

3.4.1 v(小写 v)

在 normal 模式下,按一下 v,然后可以按 l,重复按 l,你会发现右边的在一直被选中(高亮的部分)。同样的操作,按了 v,然后再练习一下按 h、j、k。

选中的目的是什么呢?就是为了进行一些编辑操作,比如删除 d (实质是剪切)、复制 y。

小提示,常常选中之后用 c 也是比较好的选择哦,剪切并进入插入模式。

3.4.2 V(大写 V)

V 就是选中行,也很简单。按了 V 之后,然后按 j、k,就可以上下选择行了,然后一次性删除 d、复制 y,就比较方便。

3.5 组合操作

这个功能就比较强悍了,很适用,强烈推荐。 先来记公式:operator + i|a + scope

operator 就是我们前面提到的插入(c)、剪切(d)、复制(y)以及选择(v),i 表示 scope 范围内,a 表示包含 scope 标签,scope 就是操作的范围了。

实例: 以下如果将 i 换成 a,则会将符号也包含进去

3.6 撤回、查找、替换