1. vim 的简介
vim 是个编辑器,类似于 Windows 下大家常用的记事本,但是它比记事本的功能强大的多。vim 是一款具有多模式的编辑器。
本文就是以 vim 的不同模式作为讲解 vim 操作的主线,深入讲解在 vim 不同模式下的各种指令,以及对应的作用。
那么,vim 的模式共有 5 种:命令模式(默认模式)、插入模式、底行模式、替换模式、视图模式。 注意一个地方就是,大家想从一个模式切换到另一个模式期间必须都得先切换回命令模式。
2. 命令模式下的指令
命令模式下,用户在 vim 中输入的所有字符都会被认为指令。
2.1 光标移动类指令
- gg:作用:定位光标到最开始行。直接按键盘字母 g 键两次。
- shift+g(G):作用:定位光标到结尾行。
- [n]+shift+g([n] + G):作用:定位光标到指定行。
- shift+$:作用:定位光标到当前行的结尾。
- shift+^:作用:定位光标到当前行的开头。
- w:光标以单词为距离单位,进行行内或跨行向后移动。
- b:光标以单词为距离单位,进行行内或跨行向前移动。
- h:将光标向左移动。
- j:将光标向下移动。
- k:将光标向上移动。
- l:将光标向右移动。
这里需要跟大家,讲一下 h,j,k,l 如何记忆?h 和 l 分别位于这四个字母的最左边和最右边,也就可以形象的记忆为 h 是将光标向左移动,l 是将光标向右移动。其次,j 可以想象成一个英文单词"jump",向下跳,所以 j 就是将光标向下移动。k 可以想象成一个单词"king",国王都是高高在上的,为此 k 就是将光标向上移动!
有些读者肯定会有这么一个疑问,为什么放着键盘现成的上下左右键不用,要用我们不熟悉的 h,j,k,l。原因很简单,就是早期的键盘没有现成的上下左右键,这个点我们要努力克服,尽量使用 h,j,k,l。
2.2 复制、拷贝、剪切、删除以及撤销指令
- [n]yy:作用:复制行内容。
- [n]p:作用:粘贴。
- [n]dd:作用:删除、剪切。
- [n]x:删除光标之后的字符。
- [n]X:删除光标之前的字符。
- u:作用:撤销。
- ctrl+r:作用:撤销之前的撤销。
2.3 其他作用的指令(大小写切换、替换字符)
- [n]r:对光标之后的 n(代指数字) 个字符进行替换。
- shift+~:大小写切换。
2.4 模式之间切换的指令(十分重要)
- i:切换为插入模式。
- shift+::切换为底行模式。
- shift+r:切换为替换模式。
- shift+v:切换为视图模式。
3. 底行模式下的指令
前提条件是,大家必须得从命令模式中用指令切换到底行模式,才能使用下面的指令。
- ESC:退出底行模式,回到命令模式。
- set nu:会在 vim 中显示行号。(非常实用)
- [n]:在底行模式下,将光标跳转到指定行。
- / 关键字:在 vim 显示的文本下从第一个关键字的行开始往下搜索。
- ? 关键字:在 vim 显示的文本下从最后一个关键字的行开始往上搜索。
- noh:消除查找关键字之后的高亮
- vs [filename]:以分屏的形式打开这个文件。
- ctrl+ww:切换窗口。
- w:保存文件。
- q:退出 vim。一般我们可能会遇到 vim 异常,导致你就算切换到底行模式输入了 q 键也无法退出,此时我们就得在 q 后面加一个!号,表示强制退出。而这个指令一般与 w 搭配使用,也就是输入 wq,表示保存并退出!
- 替换文本内容:%s/[替换的字符串]/[替换成的字符串]/g
%表示全文替换。s 相当于指令开始的起手势,必不可少。g 表示仅替换第 g 行的指定的字符串。
4. 替换模式下的指令
大家切换到替换模式时,会看到一个小细节:在此模式下,你输入的所有字符都会随着光标的移动覆盖掉你之前写的文本!这个就是替换模式所赋予我们的功能。


