这篇文章,本来是写给自己老婆的,老婆的第一份工作,是从事运维方面的工作,经过经常与她沟通她工作上的东西,我感觉vim对她来说非常之重要,然而她对vim的使用不是特别的熟悉,于是前段时间写了这篇文章。发出来也许能帮助到其他朋友,所以就贴上来了。
vim 基本操作键位
光标移动
键位 | 操作功能 |
---|---|
h | 向左移动一个字符 |
k | 向上移动一个字符 |
j | 向下移动一个字符 |
l | 向右移动一个字符,以上四个按键最好不要用方向键替代 |
$ | 移动到行尾 |
0 | 移动到行首 |
% | 移动到匹配的括号位置 |
gg | 移动到文件第一行 |
G | 移动到文件最后一行 |
10G | 移动到文件第10行(10为可以修改的任意行号) |
w | 移动到当前行下一个单词的第一个字符 |
e | 移动到当前行下一个单词的最后一个字符 |
b | 移动到当前行上一个单词的第一个字符 |
剪切、复制、粘贴
键位 | 操作功能 |
---|---|
dd | 剪切光标所在行内容 |
D | 剪切光标所在位置到该行结尾部分内容 |
yy | 复制光标所在行内容 |
p | 粘贴剪切板内容到光标所在行的下一行 |
P | 粘贴剪切板内容到光标所在行的上一行 |
u | 撤销上一个操作 |
x | 删除光标当前位置字符 |
选取
键位 | 操作功能 |
---|---|
v | 从光标当前位置按字符选取 |
V | 从光标当前所在行按字符选取 |
插入模式
键位 | 操作功能 |
---|---|
i | 从光标当前位置后边插入 |
a | 从光标当前位置前边插入 |
o | 从光标所在行下一行插入 |
O | 从光标所在行上一行插入 |
搜索
键位 | 操作功能 |
---|---|
/word | 从光标当前位置向后全文搜索word这个单词(word可以换成任意单词) |
?word | 和上边类似,唯一不同是向前搜索,这两个命令都是循环搜索的,所以记住/word就行 |
fa | 当前行从光标位置向后搜索,跳转到第一个字符a(a可以修改为任意字母,区分大小写) |
Fa | 和上边类似,唯一不同是向前搜索,这两个命令只能搜索当前行,以上四个命令都可以输入完毕后如果不是想要的位置,按; 键可以跳转到继续搜索的下一个该字符 |
复合命令
记住以上命令就可以灵活用vim了,数了一下一共也没有20个,而且我估计你已经记住了至少10个了。另外一些功能,是上述按键的复合,举几个例子:
- 可以用V命令配合光标移动命令,选中一段文本,然后剪切d或复制y,然后移动光标到另一个地方,粘贴p。
- 可以diw命令删除光标当前位置的单词。
其他很多命令,去看别人的帖子吧,我常用的就这些,其他的也不会了。
最后
一定不要担心这些命令很多,记不住,不要担心这些命令就像背单词一样困难,经常会忘记。我作为vim的重度使用患者,告诉你,刚开始时你需要刻意的思考某个操作需要按哪几个键,但大概使用十几次这个命令后,就会形成肌肉记忆,以后想操作啥时,大脑会无意识的控制双手去那么按键盘,甚至都在你意识到要这样操作之前,操作已经结束了。这就是很多人痴迷vim的原因,因为操作快。
现在每当你问我某个操作要按哪些命令时,我都要思考一下,然而,如果我自己去操作,我就不用思考,就是这种感觉。
闲扯
说说我对vim的体会。上研究生时,当时在做ROS,需要频繁的在linux系统上做开发,也就接触了vim,接触之后就迷上了这个工具,学习它的键位和扩展功能,尤其是花了很长时间配置自己的vimrc,我猜每一个入坑vim的朋友都有自己呕心沥血的vimrc吧。后来,我开始沉迷于研究如何将vim打造成强大的IDE,那时候,vim的各种扩展插件都研究过,智能补全、语法检查、自动编译、远程部署都做过,当时我最好的伙伴爱上了JetBrain套件。沉迷了有半年,不知怎么着,突然意识到自己不应该把时间浪费在研究工具上,而是应该用在真正该用的地方,于是,我才逐渐的从vim的坑里边爬出来。然而,现在我在做windows端和linux端的C/C++开发,也会开发django和flask,我使用VS、Pycharm、VS Code,这些工具上都安装着vim插件,开发代码也都用着hjkl,感觉非常方便,开发的思路行云流水,这是vim带给我的一种体验。Mac上的终端里依然部署着自己的vimrc,不过已经是好几年前的东西了,大多数插件已经关掉,就vim原生的那点东西,才是精华,把这些东西与现在IDE的高级功能结合起来,进一步提高软件开发过程中的效率。
btw,人生中第一份工作,是做IDE开发,也算是造化弄人,当时研究怎么把vim打造成强大IDE的时候,非常鄙视IDE。不过在研究的过程当中,也熟悉了IDE应该有的功能,这也为我的第一份工作提供了知识基础,让我能更快的投入工作中去。这个道理是,现在做的每一件事,看似没有意义,但在未来的某个时间点,也许就能用得到,所以,认真做好每一件小事。