46

听说,撸代码,ide与vim更配哦

 5 years ago
source link: https://studygolang.com/articles/13735?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

vim折腾记

在选择编辑器上面,我是一个纠结的人,曾经年少的我执着地追求一款万能的编辑器,可以支持所有编辑语言,灵活可定制,可纯粹用键盘操作。符合这种条件的编辑器,非vim莫属。

在投入vim阵营之前,我对其是敬而远之的。第一次使用vim,我的第一感觉是:

"挖槽,这是什么鬼?行号没有,语法高亮没有,自动提示也没有,这跟txt有什么区别... 赶紧退出,靠,怎么还退不出?这反人类的东西还被誉为编辑器之神?“

后来看了大神们对于vim的配置,才知道vim原来还可以这么玩,推荐阅读 老司机乱谈编辑器之神 ,这篇文章让我惊叹于vim的牛逼,感觉vim无所不能,开始想象着自己学会vim后,在其他人都用各种ide的情况下,我将vim窗口最大化,键指如飞,犹如弹钢琴的艺术家。这个装逼的场景,想想都觉得飘飘然...

在各种酷炫功能的吸引下,我开始沉迷于如何折腾vim

aqiUnaz.png!web

vim装逼插件

装逼是人类的刚需

vim的学习曲线比较陡峭,如果你是纯粹的小白,强烈推荐 简明 VIM 练级攻略 ,跟着此文练习几天,vim最基本的功能就熟悉了。

对vim有初步的认知后,要进一步系统地学习vim,《Vim实用技巧(第2版)》是不二选择

RVF3a2e.png!web

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 查看当前所有书签

宏操作

  1. 首先,按下 q,然后按下你想要保存的寄存器,任何小写字母都可以。比如我们来把它保存到 q 这个寄存器中。按下 qq,你会发现命令行里已经显示了 "recording @q"。
  2. 如果你已经录制完成,那么只需要再按一次 q 就可以结束录制。
  3. 如果你想调用刚才录制的宏,只需要 [count]@q
  4. 如果你想调用上一次使用的宏,只需要 [count]@@

实例:一个插入字符串 "abc" 后换行的宏,重复调用十次:

qq
iabc<cr><esc> # <cr> 表示回车键
q
10@q

Tip: 如果是windows系统,ide启用vim插件的体验不太好,因为ctrl既是vim的功能键,又是windows功能键,两者会有冲突,用着不是很爽。mac的功能键是command键,避免了冲突问题

如果觉得本文对你有所帮助,点个赞,或者赏杯咖啡钱,你的认可对我很重要


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK