vim基本操作键位

这篇文章,本来是写给自己老婆的,老婆的第一份工作,是从事运维方面的工作,经过经常与她沟通她工作上的东西,我感觉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个了。另外一些功能,是上述按键的复合,举几个例子:

  1. 可以用V命令配合光标移动命令,选中一段文本,然后剪切d或复制y,然后移动光标到另一个地方,粘贴p。
  2. 可以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应该有的功能,这也为我的第一份工作提供了知识基础,让我能更快的投入工作中去。这个道理是,现在做的每一件事,看似没有意义,但在未来的某个时间点,也许就能用得到,所以,认真做好每一件小事。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值