vim和source insight使用对比

从2019年开始,比较多的使用了vim,之前一直是source insight用的多。为什么突然vim用的多了呢?因为某些外部因素,公司开始逐步不让用source insight了,再加上代码库的编译都是在Linux机器上,直接在SSH到Linux服务器上修改编译比较方便。

先说说source insight的使用体验。对于C/C++项目,source insight看代码非常的方便。找文件、找符号、模糊搜索、添加书签、看函数调用图(这个尤其赞)都十分的方便,写代码的智能提示虽说不像VS之类的IDE一样那样精准但也够用。缺点就是文本编辑体验比较一般,并且只支持Windows平台,自由度比较低。总体来说,source insight适合Windows下看代码,学习成本很低,不同的场景使用自己可使用的合适的工具高效的完成工作,这就是好的,没必要偏执。

接下来重点说说vim的使用体验。vim用熟练了,写代码会有一种行云流水的感觉,脑子里想的修改可以快速反应到对应代码的修改上,快速找到要修改的点,组合操作快速修改成自己想要改成的内容,可以说在某种程度上提高了写代码的体验,让写代码变得更爽。

vim有一定学习成本,但是这个投资绝对是值得的,熟练后编辑代码和配置等各种文本的速度会提升很多,大多数的Linux发行版中vim都是内置的,而且很多命令的操作模式都是集成vim的,各种IDE都有VIM插件。学习vim最好的方法就是先用起来再说,然后结合自己的使用场景,看帮助,查资料,不断优化自己的操作方法,总结出自己的使用经验。之前自己还写过两篇入门的小总结:

vim是多模式设计,不同模式下各种组合可以完成很多的复杂操作,熟悉了这种组合操作后,编辑效率会提高很多。入门阶段,最好把vim help中的前5章好好看看,英文帮助可以很好的说明对应快捷键的含义,方便记忆,比如cw就是change word。下面说说自己平时的一些使用经验:

一些通用编辑技巧:

  1. 多使用原生的快捷键。不要自己改太多的特殊键位,免的换台机器就不会操作了。很多人会映射ESC键,我刚开始也想着这么做,但是经过一段时间的练习,发现左手无名指按ESC完全没问题,ctrl 键使用左手手掌来按,手型不用变得太多,很快就能适应。
  2. 多用ctrl+p智能联想,已经输入过的单词,在ctags数据库里的符号都可以联想出来。这个功能很强大,在终端下操作一定要学会多用这个可以大幅提高效率。
  3. 多用.操作,这个是重复前面的操作。前面来了一通复杂操作,光标移到特定位置,直接按.重复非常方便。
  4. 快捷键也不需要记得特别多,常见场景下最常见最方便记住就行。比如跳到行首按0就行,行内搜索用f键。
  5. visual模式要和各种跳转配合起来,会更方便的选中然后进行删除修改等操作。比如解决git冲突时,先走索跳转^<<然后,然后V选中行,在搜索跳转到^===,就选中了冲突的部分;/x然后跟方向键可以联想历史所有x开头的输入过的搜索。选中后,p直接粘贴覆盖,c直接删除并且切换到插入模式,等等。
  6. 多文件操作。当前文件下,执行:e filename 新开一个buffer打开一个文件,可以用e +enc=gbk指定编码,:ls可以看打开了多少文件,:b xx可以跳转过去,跳转指定的xx时可以用tab联想。跳转buffer前需要保存当前文件的修改,set autowrite可以自动保存修改。关掉buffer命令bd,表示buffer delete。根据缩写联想完整单词,有利于记忆。还有多标签tabe xx,用gt来切换。个人比较喜欢用多buffer一些,写代码时当前屏幕就是当前文件。
  7. 居中当期那行。zz居中当前行到屏幕;
  8. 选中后自动缩进==,这个对很多类型的文件都支持;

一些写C/C++代码的技巧:

  1. 安装一下 ctags 和 cscope,这两个插件非常常见也很好安装。ctags看定义ctrl+],cscope看引用,跳转到定义或者引用后可以ctrl+o跳回来,ctrl+i是往前跳。这个是基本的使用命令ctags -R --extra=f;cscope -Rb,在项目的根目录下执行。看代码不要进到具体的目录,在根目录启动vim,vi -t xx跳转到符号xx,或者打开后:tj xx跳转。
  2. 一般IDE写代码都有智能提示,对于VIM,有对应的YouCompleteMe插件,不过这个插件安装配置比较麻烦。那么如果没有这个YCM插件,那么就用好分屏:vs竖着分两屏,sp横着分屏,在一个分屏写代码,另一个分屏看相关的代码或者结构体定义、函数声明等就,写代码脑子里也适当多记忆一些,不要太依赖智能提示了。
  3. 遍历目录。直接:e .是打开了当前目录,:e %:h看打开的当前文件的目录,可以比较方便的分析同级目录下的其他文件,e: %r.h看当前文件的本地同名头文件。跳到系统头文件位置,光标放在头文件的文件名处,gf表示go file跳转到文件。
  4. 用好grep和copen。有时候找代码,grep搜索很方便。在vim中首先:grep xxx -r dir,然后:copen就会有quickfix list了,ctrl+w两次跳转到分屏的quickfix list, 然后回车跳转到对应文件,配合ctrl+ictrl+o的前后跳转很方便。如:在.c和.h中搜内容grep -Ir --include "*.[ch]" "xx"就可以指定目录在指定类型文件中搜索了。在命令模式下拷贝光标所在单词是ctrl+r ctrl+w组合,十分好用,记住用左手手掌部分按ctrl。退出当前窗口直接:q即可,退出其他分屏只保留当前用:only命令;
  5. 粘贴。设置:set paste, 然后粘贴外部剪切板的内容,这样就不会有因为自动缩进而导致的格式混乱了,关闭用set nopaste
  6. 关闭行号。有时候需要复制内容到外部,不需要行号,set nonu快速关闭行号显示,set nu再显示回来。
  7. 关闭高亮。经常会*键,高亮搜索光标所在的单词,set noh关闭高亮,下次再次搜索又会高亮了。
  8. 折叠函数。选中vi{表示选中大括号内内容,然后zf折叠选中部分,zo打开选中部分。

把VIM高效的用起来,并不需要多复杂的配置,也不需要很多复杂的插件。要做到随便SSH到一台Linux服务器,稍微修改下vimrc就可以高效的展开工作。配置和操作上的优化可以随着自己碰到的使用场景而逐步完善。

发布了140 篇原创文章 · 获赞 160 · 访问量 32万+

猜你喜欢

转载自blog.csdn.net/thisinnocence/article/details/104240659
今日推荐