24|VIM:如何高性价比地学习VIM的实用技巧?
文章目录
你好,我是葛俊。今天,我来和你聊聊 VIM 的使用技巧。
在“特别放送 | 每个开发人员都应该学一些 VIM”这篇文章中,我和你详细介绍了 VIM 提高研发效能背后的原因。我推荐每个开发者都应该学一些 VIM 的原因,主要有两个:
- 独特的命令模式,可以大量减少按键次数,使得编辑更高效;
- 支持跨平台,同时可以在很多其他 IDE、编辑器中作为插件使用,真正做到一次学习,处处使用。
VIM 确实可以帮助我们提高效率,但面对这样一个学习曲线长而且陡的编辑器,我们很容易因为上手太难而放弃。所以,如何性价比高地学习 VIM 的使用技巧非常重要。
我推荐你按照以下三步,来高效地学习如何使用 VIM:
- 学习 VIM 的命令模式和命令组合方式;
- 学习 VIM 最常用的命令;
- 在自己的工作环境中使用 VIM,比如与命令行环境的集成使用。
接下来,我们分别看看这三步吧。
VIM 的模式机制
VIM 的基本模式是命令模式,在命令模式中,敲击主体键的效果不是直接插入字符,而是执行命令实现对文本的修改。
使用 VIM 的最佳工作流
在我看来,在命令模式下工作,效率高、按键少,所以我推荐你尽量让 VIM 处于命令模式,使用各种命令进行工作。进入编辑模式完成编辑工作之后也立即返回命令模式。
事实上,我们从命令模式进入编辑模式修改文件,之后再返回命令模式的全过程,就是一个编辑命令。它跟其他的命令,比如使用 dd 删除一行,并没有本质区别。接下来,我们一起看个具体的例子吧。
比如,我要在一行文字后面加上一个大括号,后面再写一行代码。开始编辑时,光标处于这一行的开头。
|
|
修改的目标是这样:
|
|
在 VIM 中,我的操作是,首先敲击大写字母 A,将光标移到这一行的末尾,并进入编辑模式:
|
|
然后,输入“{ timeout: 1000ms, 回车}”,在文件中插入内容。最后,敲击 Esc 键回到命令模式。编辑完成。
|
|
实际上,整个过程就是执行了一条“在本行末尾插入文字”的命令。整条命令的输入是“A{ timeout: 1000ms, 回车}Esc”。虽然比较长,但仍然是一条文本编辑命令。
所以实际上,我们在 VIM 中的工作,正是在命令模式里执行一条条的命令完成的。理解了这一点,你就可以有意识地学习、设计命令来高效地完成工作了。
为了让命令更加高效,VIM 还提供了强大的命令组合功能,使得命令的功能效果呈指数级增长。
命令的组合方式
在 VIM 中,有相当一部分命令可以扩展为 3 部分:
- 开头的部分是一个数字,代表重复次数;
- 中间的部分是命令;
- 最后的部分,代表命令的对象。
比如,命令 3de 中,3 表示执行 3 次,d 是删除命令,e 表示从当前位置到单词的末尾。整条命令的意思就是,从当前位置向后,删除 3 个单词。类似的,命令 3ce 表示从当前位置向后,删除三个单词,然后进入编辑模式。
可以看到,命令组合的前两个部分比较简单,但第三个部分也就是命令对象,技巧就比较多了。所以接下来,我就与你详细介绍下到底有哪些命令对象可以使用。
其实,对命令对象并没有一个完整的分类。但我根据经验,将其总结为光标移动命令和文本对象两种。
第一种是光标移动命令。比如,命令是移动光标到本行末尾,那么d命令是移动光标到本行末尾,那么d
文章作者 anonymous
上次更新 2024-05-21