vim折腾记
在选择编辑器上面,我是一个纠结的人,曾经年少的我执着地追求一款万能的编辑器,可以支持所有编辑语言,灵活可定制,可纯粹用键盘操作。符合这种条件的编辑器,非vim莫属。
在投入vim阵营之前,我对其是敬而远之的。第一次使用vim,我的第一感觉是:
"挖槽,这是什么鬼?行号没有,语法高亮没有,自动提示也没有,这跟txt有什么区别... 赶紧退出,靠,怎么还退不出?这反人类的东西还被誉为编辑器之神?“
后来看了大神们对于vim的配置,才知道vim原来还可以这么玩,推荐阅读 老司机乱谈编辑器之神,这篇文章让我惊叹于vim的牛逼,感觉vim无所不能,开始想象着自己学会vim后,在其他人都用各种ide的情况下,我将vim窗口最大化,键指如飞,犹如弹钢琴的艺术家。这个装逼的场景,想想都觉得飘飘然...
在各种酷炫功能的吸引下,我开始沉迷于如何折腾vim
装逼是人类的刚需
vim的学习曲线比较陡峭,如果你是纯粹的小白,强烈推荐 简明 VIM 练级攻略,跟着此文练习几天,vim最基本的功能就熟悉了。
对vim有初步的认知后,要进一步系统地学习vim,《Vim实用技巧(第2版)》是不二选择
掌握vim的基础命令后,我就开始了折腾vim的辛酸血泪史,一开始是自己配置.vimrc
,后来看到网上有很多现成的配置,如号称vim终极配置的 spf13-vim,国内的 spacevim 将vim配置得如同开箱即用的ide
在尝试各种vim配置后,没有哪一个配置是真正用得称手的,总有些坑在等着我,而且将vim打造得如此复杂,总感觉格格不入,貌合神离,且并没有ide好用。
既然如此,为何要去折腾vim? 直接用ide不就行了?
可是习惯了vim的模式切换,键位操作,再也无法去用ide那些奇奇怪怪的快捷键组合。
最终的解决方案就是用 jetbrains全家桶,然后安装ideavim
插件,既能享受ide集成环境的便利,又得继续使用强大的vim, 而且jetbrains全家桶已经囊括了主流编程语言,不管是写PHP(phpstorm), 还是撸python(pyCharm), 又或者是玩golang(GoLang),都有对应的ide,但使用起来就如同在用同一款编辑器
vim常用命令
vim是学不完的,即使是用了vim十年的老手,也不敢说完全掌握了vim。但常用的vim指令并不是很多,以下列举我常用的指令:
光标移动
- 0 到行头
- ^ 到本行第一个不是blank的位置
- $ 到行尾
- g_ 到本行最后一个不是blank的位置
- NG 到第N行 或者是 :N
- w 到下一个单词的开头
- e 到下一个单词的结尾
- % 匹配括号移动
- 和 # 匹配光标当前所在的单词,移动光标到下一个/上一个匹配单词
- f{char} 到下一个{char}
- t{char} 到{char}前的一个字符
- Nf{char} 在当前行查找第N个出现的{char} 如:3fa
- F 和 T 与 f 和 t 反方向
- dt{char} 删除{char}之前的所有内容
- ; 与 , 跳到下/上一个由f/F, t/T查找的字符
替换
- :%s/原文本/替换的内容/g 全文替换
- :10,20/原文本/替换的内容/g 指定行号替换
指定行数操作
- :10,20y 复制10至20行
- :10,20d 删除10至20行
高效操作
- . 重复上一次的命令
- N<command> 重复某个命令N次
2dd 删除2行
3p 粘贴文本3次
100idesu[ESC] 会写下100个 desu
跳转
- ctrl + o 回到上一处
- ctrl + i 回到下一处
书签
- ma 设置当前文件的书签
- mA 设置全局文件的书签
- `a 跳到书签a
- `A 跳到书签A
- :marks 查看当前所有书签
宏操作
- 首先,按下 q,然后按下你想要保存的寄存器,任何小写字母都可以。比如我们来把它保存到 q 这个寄存器中。按下 qq,你会发现命令行里已经显示了 "recording @q"。
- 如果你已经录制完成,那么只需要再按一次 q 就可以结束录制。
- 如果你想调用刚才录制的宏,只需要 [count]@q
- 如果你想调用上一次使用的宏,只需要 [count]@@
实例:一个插入字符串 "abc" 后换行的宏,重复调用十次:
qq
iabc<cr><esc> # <cr> 表示回车键
q
10@q
Tip: 如果是windows系统,ide启用vim插件的体验不太好,因为ctrl既是vim的功能键,又是windows功能键,两者会有冲突,用着不是很爽。mac的功能键是command键,避免了冲突问题
如果觉得本文对你有所帮助,点个赞,或者赏杯咖啡钱,你的认可对我很重要
有疑问加站长微信联系(非本文作者)