【问题标题】:"complete-tag" can't find TAGS file“完整标签”找不到标签文件
【发布时间】:2014-06-08 17:34:48
【问题描述】:

我想使用:

  • “etags-select”在源代码中导航
  • “complete-tag”(来自 emacs etag.el)来完成输入文本。

我的 .emacs 中有这个

(setq-default tags-table-list '("../TAGS"))

“etags-select”在目录树中查找 TAGS 文件 one 可以正常工作,但 complete-tag 看起来 two 向上并找不到 TAGS文件。

更多信息:

C:/projects/root/v16/src/ 中工作,我调用“complete-tag”并且 Emacs 向我展示(在 Minibuffer 中):

访问标签表(默认TAGS):C:/projects/root/v16/

那是正确的目录(在树上一步)。现在我按下回车键和 Emacs 答案:

C:/projects/root/TAGS 不是有效的标签表

这是一个错误的目录,再上一步。

【问题讨论】:

  • 不知道为什么,但作为一种解决方法,您可以设置一个带有绝对路径的缓冲区本地 TAGS 文件吗?
  • 我需要项目是完全可移植的。无论如何,当没有其他解决方案时,我会考虑这种解决方法。谢谢。

标签: emacs autocomplete


【解决方案1】:

过去,我通过使用环境变量解决了类似的问题:我碰巧有一个环境变量指向我当前项目的根目录,所以我重用它来构建标签表的名称(所以我从来没有跑过相对路径的问题)。

如果不是你的情况,我会尝试etags-table。您可以设置正则表达式,也可以将 etags-table-search-up-depth 设置为适合您的值。

这两种方法都可以让您腾出双手为您的项目添加目录级别。

【讨论】:

  • 谢谢。使用 etags-table 和 etags-table-search-up-depth 设置为 1,它可以在我的 .emacs 中找到没有信息的 TAGS 文件
【解决方案2】:

您使用的变量 tags-table-list 是一个列表。您可以将“../TAGS”和“TAGS”都放入该列表。这应该适用于您描述的设置。

【讨论】:

  • 我试过了。两个表都必须存在并且有效。当“TAGS”是列表中的第一项时,“complete-tags”工作并加载两个表。当第一项是“../TAGS”时,“complete-tags”会像以前一样失败。另外,由于双表,“etags-select”使建议的机会加倍。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
  • 1970-01-01
  • 2015-01-19
  • 1970-01-01
  • 1970-01-01
  • 2020-06-04
相关资源
最近更新 更多