我刚刚使用我的Vim(或者更确切地说是gVim)安装了Ctags(以帮助进行C++开发),并希望找到您最喜欢的命令,宏,快捷方式,以及随之而来的提示......
分享你最好的武器库.在Vim开发中你会推荐哪些其他Vim附加组件用于C++?
编辑您将与Ctags一起使用的其他附加组件?
EDIT2您使用哪个版本的gVim标签?这有什么不同吗?
EDIT3如何增强大型和小型项目的编程体验?
我主要使用vim/gvim作为编辑器,并且正在考虑使用lxr(Linux交叉引用)和cscope或ctags的组合来探索内核源代码.但是,我没有使用cscope或ctags,并且想要听到为什么人们可以选择其中一个而不考虑我使用vim作为主编辑器.
我今天正试图在Vim上设置(旺盛)ctags并且很难让它正常工作.我在命令行上使用以下命令生成我的ctags文件:
cd myproj
ctags -R
Run Code Online (Sandbox Code Playgroud)
这会将标记文件放在myproj根目录中.但是,当我处理驻留在root中的源时,Vim似乎只读取此标记文件.当我导航到更深层的目录时,如果我尝试使用跳转到标签<C-]>,我得到:
E433: No tags file
E426: tag not found: MyClassName
Run Code Online (Sandbox Code Playgroud)
我已经验证了MyClassName在tags文件中确实有一个标记,只是Vim没有看到它.有人可以解释如何配置Vim引用根的标签文件?
谢谢.
现在我有以下内容.vimrc:
au BufWritePost *.c,*.cpp,*.h !ctags -R
Run Code Online (Sandbox Code Playgroud)
这有一些问题:
当你将这两个问题结合起来时,我最终推迟了额外的输入(在ctags -R完成之前),然后看到恼人的错误信息,并且必须再次按回车键.
我知道这听起来不是什么大不了的事,但随着我在某一天所做的文件写入量的增加,它往往会变得非常烦人.必须有一个更好的方法来做到这一点!
我正在使用Ctrl- ]在Vim中使用Ctags进行导航.如果有多个匹配项,如何导航到备用文件?
防爆.something.publish在包含多次出现的代码库中publish:
class Foo
def publish
end
end
class Bar
def publish
end
end
Run Code Online (Sandbox Code Playgroud) 我遇到的问题是vim/gvim中的ctags很多时候都会将我带到前向声明而不是函数的实际定义.
有办法解决这个问题吗?
我已经看过并试图使用旺盛的ctags而没有运气我想做什么.我在一个mac上试图在一个项目中工作,我想要排除诸如.git,node_modules,test等目录.当我尝试类似的东西时,ctags -R --exclude=[.git, node_modules, test]我得不到任何回报.我真的只需要在我的核心目录中运行它.有关如何实现这一目标的任何想法?
我目前正在使用vim进行PHP开发.几个星期前,我给自己买了一台mac,并希望为新的Zend Framework版本重新生成我的标签.
我过去使用以下脚本(linux机器)来生成标签:
#!/bin/bash
cd ~/www/ZF/
ctags-exuberant -f ~/.vim/tags/zend \
-h ".php" -R \
--exclude="\.svn" \
--totals=yes \
--tag-relative=yes \
--PHP-kinds=+cf \
--regex-PHP='/abstract class ([^ ]*)/\1/c/' \
--regex-PHP='/interface ([^ ]*)/\1/c/' \
--regex-PHP='/(public |static |abstract |protected |private )+function ([^ (]*)/\2/f/'
Run Code Online (Sandbox Code Playgroud)
你可以看到我使用了"ctags-exuberant"命令.问题是我的系统(mac)上找不到这个.我只有ctags命令.我尝试安装最新版本的ctags库(http://ctags.sourceforge.net/),但没有给我这个命令.
ctags命令与ctags-exuberant的参数不同.那2个问题:
谢谢!病房
我刚刚发现了vim的taglist插件,并阅读了如何将它与ctags一起使用.
然而,令人失望的是ctags是一个非常简单的解析器.
有没有更完整的替代方案?
具体来说,我正在寻找一些东西:
扩展#define(x, y) x ## y函数声明的样式宏
处理#include陈述
允许为依赖项指定包含路径
我看到clang提供了一个用于访问c AST的程序api,所以这肯定不是很难吗?
有人已经做过吗?
-
编辑:
这些不削减它:
clang_indexer - 不编译; 什么时候(黑客攻击后),不起作用(无休止的错误).
clang_complete - 似乎没有比ctags好.没有特定于上下文的建议,没有结构完成,没有函数参数,没有宏扩展; 只是一个符号列表和它们来自的文件.
我使用Ctrl-]使用vim C++标记文件进行导航.问题是每当某个文件被修改,链接不再有效,我必须重新运行ctags并更新标记文件.我们的代码库很庞大,生成标记文件需要很长时间.
有没有工具在后台定期更新标签文件?我可以配置VIM来做同样的事情吗?
我在Windows下使用gvim.