标签: ctags

Vim和Ctags提示和技巧

我刚刚使用我的Vim(或者更确切地说是gVim)安装了Ctags(以帮助进行C++开发),并希望找到您最喜欢的命令,宏,快捷方式,以及随之而来的提示......

分享你最好的武器库.在Vim开发中你会推荐哪些其他Vim附加组件用于C++?

编辑您将与Ctags一起使用的其他附加组件?

EDIT2您使用哪个版本的gVim标签?这有什么不同吗?

EDIT3如何增强大型和小型项目的编程体验?

vim ctags vim-macros

485
推荐指数
11
解决办法
26万
查看次数

cscope或ctags为什么选择一个而不是另一个?

我主要使用vim/gvim作为编辑器,并且正在考虑使用lxr(Linux交叉引用)cscopectags的组合来探索内核源代码.但是,我没有使用cscopectags,并且想要听到为什么人们可以选择其中一个而不考虑我使用vim作为主编辑器.

vim kernel ctags cscope

128
推荐指数
2
解决办法
7万
查看次数

Vim:难以设置ctags.子目录中的源不会在项目根目录中看到标记文件

我今天正试图在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引用根的标签文件?

谢谢.

vim ctags

61
推荐指数
2
解决办法
3万
查看次数

Vim自动生成ctags

现在我有以下内容.vimrc:

au BufWritePost *.c,*.cpp,*.h !ctags -R
Run Code Online (Sandbox Code Playgroud)

这有一些问题:

  1. 它很慢 - 为自上次标记生成以来未更改的文件重新生成标记.
  2. 由于不可避免的"按Enter或键入命令继续",我必须在写入文件后再次按下输入按钮.

当你将这两个问题结合起来时,我最终推迟了额外的输入(在ctags -R完成之前),然后看到恼人的错误信息,并且必须再次按回车键.

我知道这听起来不是什么大不了的事,但随着我在某一天所做的文件写入量的增加,它往往会变得非常烦人.必须有一个更好的方法来做到这一点!

vim autocomplete ctags

54
推荐指数
4
解决办法
3万
查看次数

如何在Vim中导航多个ctags匹配?

我正在使用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 ctags exuberant-ctags

53
推荐指数
3
解决办法
2万
查看次数

在vim中获取ctags以进行定义,而不是声明

我遇到的问题是vim/gvim中的ctags很多时候都会将我带到前向声明而不是函数的实际定义.

有办法解决这个问题吗?

vim ctags

48
推荐指数
3
解决办法
3万
查看次数

如何使用Exuberant ctags排除多个目录?

我已经看过并试图使用旺盛的ctags而没有运气我想做什么.我在一个mac上试图在一个项目中工作,我想要排除诸如.git,node_modules,test等目录.当我尝试类似的东西时,ctags -R --exclude=[.git, node_modules, test]我得不到任何回报.我真的只需要在我的核心目录中运行它.有关如何实现这一目标的任何想法?

vim ctags exuberant-ctags

45
推荐指数
3
解决办法
2万
查看次数

Mac上充满活力的Ctags

我目前正在使用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个问题:

  • 两个命令有什么区别?
  • 如何安装ctags-exuberant或使用PHP的普通ctags命令?

谢谢!病房

php vim ctags exuberant-ctags

41
推荐指数
3
解决办法
3万
查看次数

有没有替代ctags更好的?

我刚刚发现了vim的taglist插件,并阅读了如何将它与ctags一起使用.

然而,令人失望的是ctags是一个非常简单的解析器.

有没有更完整的替代方案?

具体来说,我正在寻找一些东西:

  • 扩展#define(x, y) x ## y函数声明的样式宏

  • 处理#include陈述

  • 允许为依赖项指定包含路径

我看到clang提供了一个用于访问c AST的程序api,所以这肯定不是很难吗?

有人已经做过吗?

-

编辑:

这些不削减它:

  • clang_indexer - 不编译; 什么时候(黑客攻击后),不起作用(无休止的错误).

  • clang_complete - 似乎没有比ctags好.没有特定于上下文的建议,没有结构完成,没有函数参数,没有宏扩展; 只是一个符号列表和它们来自的文件.

vim ctags

38
推荐指数
2
解决办法
2万
查看次数

如何自动更新vim中的标签文件?

我使用Ctrl-]使用vim C++标记文件进行导航.问题是每当某个文件被修改,链接不再有效,我必须重新运行ctags并更新标记文件.我们的代码库很庞大,生成标记文件需要很长时间.

有没有工具在后台定期更新标签文件?我可以配置VIM来做同样的事情吗?

我在Windows下使用gvim.

vim ctags

35
推荐指数
5
解决办法
3万
查看次数

标签 统计

ctags ×10

vim ×10

exuberant-ctags ×3

autocomplete ×1

cscope ×1

kernel ×1

php ×1

vim-macros ×1