Chinaunix

标题: 关于VIM的自动补全 [打印本页]

作者: Kasiotao    时间: 2013-10-04 11:53
标题: 关于VIM的自动补全
本人新手Linux下的编程,以前都是用的IDE,现在想脱离IDE,使用VIM进行编辑,纯C语言,已经熟悉了1个多月了,基本的命令什么的都比较熟悉了,也照着网上那篇《一步一步把你的VIM打造成IDE》的博客学习了,基本所有的插件都装了。但是但是,不知道是不是我有什么地方没弄懂。我觉得不论是自带的omni completion 还是supertab都是需要tags文件支持的吧?也就是说,我在重新开始写代码时,如果新增加了一个结构体,那不是要重新更新tags文件??多麻烦啊。。。。还有我发现,为什么不能自动补全局部变量?甚至像include int 等等关键词也不会补全。。。。。我想知道有没有大神能够指导一下。。。。因为如果是这样的话,那么代码写个上W行 那哪受的了???
作者: net小伙    时间: 2013-10-04 11:57
使用vim一个字母一个字母敲代码的菜鸟路过!
作者: Kasiotao    时间: 2013-10-04 12:20
回复 2# net小伙
Linux开发者很多都是用的VIM,那么长的代码他们肯定时借助了插件的,不然不管记忆力再好,也不可能将那么长的程序搞定吧。不过难道或许也是我之前过于依赖IDE的功能了?

   
作者: net小伙    时间: 2013-10-04 12:28
回复 3# Kasiotao 额,这个就不知道了,本人没做过项目,坐等去公司实习呢!


   
作者: tseesing    时间: 2013-10-04 12:31
输入模式下
ctrl + p 或 ctrl + n
这个 vim 的手册很详细.
作者: Kasiotao    时间: 2013-10-04 12:42
回复 5# tseesing
额,这位同学,谢谢你的回答,不过请麻烦看清楚我问得问题,我不是不知道按什么键位补全,我就这么说吧,你随便写个小程序,你敲printf敲一半,按下^P,^N没用的,因为貌似omni completion是和tags文件挂钩的

   
作者: fly3ds    时间: 2013-10-04 12:43
上万行代码不是一个人一天写出来的。有些人不明白程序的价值不是靠拼行数的。等你真正想把程序弄得漂亮,逻辑清楚,自己看着就赏心悦目的时候,你就会明白,这些辅助工具其实没用。
作者: Kasiotao    时间: 2013-10-04 12:53
回复 7# fly3ds
。。。。我不是来讨论这么高深的问题的,我就是想知道有没有解决方法,代码行数多了是说明不了什么,但是一个程序写到最后很多全局的变量和结构体,如果要自己一个一个码,我就是觉得很麻烦,因为以前用IDE用习惯了,变量申请了,TAB一按就出来了。只是想偷懒而已。如果有高手知道的话请告诉我谢谢

   
作者: rover12421    时间: 2013-10-04 14:43
我也是自动补全搞不定,看那个vim写c代码的动态图片,自动补全很牛叉,不知道咋实现的
作者: Kasiotao    时间: 2013-10-04 15:55
回复 9# rover12421
嗯,我现在也只能实现补全已经有的全部变量,很头疼,每次添加一个心得全局变量,还必须手动更新一次tags,很无语

   
作者: Kasiotao    时间: 2013-10-04 16:33
回复 9# rover12421
有一部分搞懂了,就是利用VIM的缓冲区进行补全,Ctrl+X + O/N/P
就是如果利用tags文件进行补全的只能补全只能补全全局变量,那么切换模式就时按下Ctrl+X再按O,这个时候如果装了supertab插件,就可以按tab进行补全了。
如果想补全全局变量,那么需要Ctrl+X再按N或者P来选择自动补全,N是向下索引,P是向上索引。切换好了以后再按tab就可一补全局部变量了,甚至可以查找当前文件包含头文件里的关键词,很强大。看来还要继续学习啊。。。。。这下写代码舒服多了,之前一直没搞懂的就是Ctrl+X+(???)是用来切换当前的补全模式的,看来太粗心了
   
作者: 惟吾无为    时间: 2013-10-04 17:20
在输入模式, 只要前面就个字母就可以ctrl-n补全了.
作者: 井蛙夏虫    时间: 2013-10-04 21:29
回复 10# Kasiotao
自动更新tag文件: 你搜一下projtags和autotag这两个插件

   
作者: Kasiotao    时间: 2013-10-05 00:42
回复 13# 井蛙夏虫
原来如此,学习了,谢谢哈

   
作者: hisptoot    时间: 2013-10-05 10:53
本帖最后由 hisptoot 于 2013-10-05 10:56 编辑

vim装个clang插件来自动补全c/c++

http://www.vim.org/scripts/script.php?script_id=3302
http://valloric.github.io/YouCompleteMe/

能用自动补全就尽量用自动补全,纯手敲代码敲多了,容易敲错
作者: jiaxinhuayuan    时间: 2013-10-05 22:54
一直一个一个敲代码的路过,请问楼主你那些自动补全是怎么实现的呢?我也弄一个
作者: jiaxinhuayuan    时间: 2013-10-05 22:54
一直一个一个敲代码的路过,请问楼主你那些自动补全是怎么实现的呢?我也弄一个
作者: Sevk    时间: 2013-10-06 15:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: mfkp3    时间: 2013-10-07 22:56
vim给人更多的是一种自由的感觉啊,指尖飞舞。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2