Emacs “完整标记”找不到标记文件

Emacs “完整标记”找不到标记文件,emacs,autocomplete,Emacs,Autocomplete,我想使用: etags选择以在源代码中导航 完成emacs etag.el中的标记以完成输入文本。 我的.emacs里有这个 (setq-default tags-table-list '("../TAGS")) etags select在目录树中向上一步查找标记文件时正常工作,但完整标记向上两步查找时无法找到标记文件 更多信息: 在C:/projects/root/v16/src/中工作时,我调用complete标记,Emacs在Minibuffer中显示: 访问标记表默认标记:C:/pro

我想使用:

etags选择以在源代码中导航 完成emacs etag.el中的标记以完成输入文本。 我的.emacs里有这个

(setq-default tags-table-list '("../TAGS"))
etags select在目录树中向上一步查找标记文件时正常工作,但完整标记向上两步查找时无法找到标记文件

更多信息:

在C:/projects/root/v16/src/中工作时,我调用complete标记,Emacs在Minibuffer中显示:

访问标记表默认标记:C:/projects/root/v16/

这是正确的目录树中的一个步骤。现在我按下回车键,Emacs回答:

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


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

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

在过去,我通过使用环境变量解决了一个类似的问题:我碰巧有一个环境变量指向当前项目的根,所以我将其重新用于构建标记表的名称,这样我就不会遇到相对路径的问题

如果那不是你的情况,我会试试。您可以设置regexp,也可以将etags table search up depth设置为适合您的值


这两种方法都让您可以自由地将目录级别添加到项目中。

不知道为什么,但作为一种解决方法,您可以设置具有绝对路径的缓冲区本地标记文件吗?我需要项目完全可移植。无论如何,当没有其他解决方案时,我会考虑这个解决方案。谢谢,我试过了。两个表都必须存在且有效。当标签是列表中的第一项时,完整的标签工作并加载两个表。当第一项为../TAGS时,完整的标记会像以前一样失败。另外,由于采用了双表,etags select将使建议的机会加倍。谢谢。使用etags table和etags table search up depth设置为1,它可以在my.emacs中查找没有信息的标记文件