突然翻到大学期间写的博文,重新在此发布。

前言

本文以 Linux 操作系统为测试环境,并且要求对 vim 有些许了解,如果对 vim 完全没有概念,建议在命令行下输入 vimtutor 获取 vim 的入门教程,花一个小时左右即可入门。

我对 vim 的定位

据我了解,在命令行时代,如果根据编辑器的使用给程序员分类,几乎大致可以分为 vim 和 Emacs 两大阵营。我在刚刚接触文本编辑器的时候,也被灌输着必须二选一的思想。诚如传言,vim 确实很重要,只要接触 Linux 而不使用 vim 是不可能的,而 Emacs 的组合命令让我实在无法忍受,所以即使 Emacs 很强大,还没开始学我就决定放弃它了。

在折腾 vim 很长时间之后,特别是接触了 Atom、Sublime Text、VS code 等新兴文本编辑器之后,我又得出了一个结论:vim 不适合这个时代。也许有很多高手和老黑客还在青睐 vim,他们已经把 vim 玩得很 6 了,甚至离不开 vim 了,但是我必须承认有很多更好用的编辑器,我不想再折腾这个老古董了。

但是 vim 是又是必须的,它是一个很好用的辅助工具,因为一旦我们熟悉了 vim 的使用,就可以在很多地方包括以上提到的新兴编辑器使用,而 vim 也确实是一个高效的工作方式。我一直在使用 vim,在 Linux 下,我使用 vim 编辑小文件,在浏览器端,我使用 vimuim 插件支持 vim 快捷键,而我在使用新兴编辑器的时候,我依然是使用 vim 的键盘快捷方式。高效的辅助工具,这是我对 vim 的定位。

这个定位也是我写本文的原因。网上有很多 vim 的教程,但是讲的都很仔细,我也看了一遍又一遍,但是到头来,我发现我记住的还是那么多,因为我只用那么多。我想通过本文总结我在使用 vim 的时候用到的东西,而且是常用的、不会忘记的东西。

简洁地使用 vim

跳转

h          向左移动
k          向上移动
j          向下移动
l          向右移动
H          移动到屏幕的起始行
M          移动到屏幕中间
L          移动到屏幕的底行
gg         移动到文档首行
G          移动到文档尾行
NG         N替换为数字,移动到文档的第N行
Ctrl + f   向下翻一页
Ctrl + b   向上翻一页
0          移动到行头
$          移动到行尾

搜索匹配

普通匹配如下,在命令模式下,先输入/,再输入 str 即可匹配到字符 str,然后按 n 则匹配下一个 str,按 N 匹配上一个 str。而如果输入的是?str,则 n 和 N 的功能相反,不管是/str 还是?str,在匹配到文始或者文末之后,都会从头开始。

/str          向下搜索匹配字符str
?str          向上搜索匹配字符str

而想要更精确的匹配,就要用到正则表达式匹配,基本使用如下,正则表达式的高级语法请自行百度。

:/str/        正则表达式匹配字符str

替换与删除

r          替换单个字母
R          从当前字母开始替换
x          删除一个字母
dw         删除一个单词
dd         删除一行
d$         从当前删除到行末
d0         从当前删除到行头
J          删除本行的回车符,将本行与下一行合并

插入

i          在当前光标前插入
a          在当前光标后插入
o          在本行的下面新建一行并进入编辑模式
O          在本行的上面新建一行并进入编辑模式

复制粘贴

yy          复制本行
p           在光标后面粘贴
P           在光标前面粘贴

更常用的做法是,在命令模式下,先按 v 进入可视模式,利用上面讲到的跳转命令选择文本,被选择的文本背景会反白,选择好要复制的文本后,按下 y 即可复制反白文本。

撤销与重复

u            撤销上一次操作,常用
.            恢复操作

打开、保存、退出

:w            保存而不退出
:w filename   保存副本
:q            退出vim
:q!           强制退出,不保存
:wq           保存并退出
:e path/file  在vim中打开文件
:f file       重命名文件

其他命令

:set nu          显示行号
:syntax on       开启语法高亮

:set option 命令常常用来设置 vim 的界面与相关配置,如上两条配置命令只会临时起作用,而退出 vim 之后就会失效,所以最好的做法是,在用户主目录下新建一个.vimrc 文件,并把自己的配置选项写入文件中,这样 vim 就知道如何初始化自己了。

:f 或者 Ctrl + G          显示状态栏,这对于想看文件名很有用
:!cm                      其中cm为shell命令,这允许我们在vim中运行shell命令

还有一些命令,我不常用,但是我认为可以了解,如下:

:sp                  上下分屏
:vsp                 左右分屏
Ctrl + w + h         切换到左边屏
Ctrl + w + j         切换到下边屏
Ctrl + w + k         切换到上边屏
Ctrl + w + l         切换到右边屏

其实 Ctrl + w 可以在不同的屏之间按顺序切换。

总结

这是我对自己使用 vim 的总结,我认为对于 vim,我知道这些就够了,希望对你们有所帮助,发现错误欢迎指正,有意见欢迎反馈。


↙↙↙阅读原文可查看相关链接,并与作者交流