30

我刚刚在 ubuntu 10.10 下使用 Exuberant Ctags 5.8下载了sublime text 2 beta 2182

我想将它用于 c++ 编码,我需要一些自动完成和代码导航。(我习惯用cdt eclipse)

我搜索了一下,发现 ctags 是一个很酷的工具,可以做到这一点,并且这里有一个 sublime text 的插件支持

问题是我想从以下位置创建标记文件:

  1. c++标准库( std::vector std::map etc)

  2. 我正在使用的框架的所有类。

第 1 点(我认为)与第 2 点相同,我只需要在我的/usr/include/c++/4.4.5/

所以我已经下载了插件并安装了它,我以这种方式制作了一个标签列表:

$ cd /absolute_path_of_my_cpp_framework/
$ ctags -R *

/home/me/.config/sublime-text-2/Packages/CTagss/CTags.sublime-settings用这一行修改:

"extra_tag_files" : [".gemtags", "/absolute_path_of_my_cpp_framework/tags"]

现在我打开一个 cpp 文件,将光标指向我框架的类名并使用键绑定ctrl+t ctrl+t,但没有任何反应。底部栏中只有这条消息:

找不到“class_name”

有人能帮我吗?

4

2 回答 2

7

我个人不使用 Sublime Text,但假设它以与 vim 类似的方式使用标记文件,您需要为 C++ 完成生成附加信息。

使用带有以下选项的 ctags:

ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++

信息取自这篇文章,它还提供了可用于生成标签的标准库头文件的副本。

于 2012-04-30T16:53:12.647 回答
2

外壳命令:

$ cd /absolute_path_of_my_cpp_framework/(1)

$ ctags -R --languages=c++ --langmap=c++:+.inl --fields=+iaS --extra=+q --totals=yes --verbose=yes(2)

$ ctags -a -R --languages=c++ /usr/include/c++/4.4.5/ --fields=+iaS --extra=+q --totals=yes --verbose=yes(3)

$ subl .(4)

描述:

(1) 转到项目的根文件夹以确保将在那里创建标签文件。

(2) 为项目中的所有 C++ 文件生成一个新的标签文件,添加对 .inl 文件、继承、访问修饰符、类限定范围等的支持。

(3) 将 C++ 标准库头的标签附加到您生成的标签文件中。

(4) 在 Sublime Text 中打开文件夹。

参考:

  1. http://ctags.sourceforge.net/ctags.html
  2. https://www.chromium.org/developers/sublime-text
  3. http://www.tarosys.com/2014/07/adding-another-file-type-for-ctags.html
  4. 旺盛的 ctags 排除目录
  5. Vim 和 Ctags:在生成标签时忽略某些文件
  6. https://www.topbug.ne​​t/blog/2012/03/17/generate-ctags-files-for-c-slash-c-plus-plus-source-files-and-all-of-their-included-头文件/
于 2016-02-24T10:08:50.247 回答