如何从 emacs 启动时加载/设置 TAGS?

如何从 emacs 启动时加载/设置 TAGS?

我对 emacs 还比较陌生,使用 emacs 版本 21.3.1,并尝试使用 emacs 的 ctags(主要用于跳转到定义)。

我正在处理一个包含许多项目的大型解决方案。问题是,每当我尝试使用命令 M-. 跳转到光标下的标签时,它都会尝试从源文件的当前目录中查找标签表。

我的 TAGS 文件位于解决方案的根目录下。因此我必须使用 Mx visit-tags-table [我的标签文件路径] 指向它。

有没有办法在我启动 emacs 时设置它,这样我就不必每次都指向它?

答案1

该变量似乎tags-file-name就是您想要设置的变量。

一种方法是将其设置在您的中.emacs,例如:

(setq tags-file-name "path/to/file")

我不会这样做,因为它会全局修复标签表,如果你想使用不同的表(比如说不同的项目),这将不起作用。

似乎你可以使用所谓的局部变量并为每个文件设置一个。执行此操作C-h v tags-file-name RET以查看更多信息。

答案2

这里有一个秘诀,可以确保无论何时何地启动 emacs,您总是可以自动加载最新的标签文件。

  1. emacs_startup.bash在项目目录中创建一个包含以下内容的文件:

    find . -name "*.yourCodeFileExtensionHere" -print | etags -
    cp TAGS ~/CurrentTagsCopy
    emacs 
    
  2. chmod u+x emacs_startup.bash

  3. 在您的主 emacs 配置文件中,添加以下行:

    (setq tags-file-name "~/CurrentTagsCopy")
    
  4. 要开始工作,请 cd 到您的项目目录并执行./emacs_startup.bash

相关内容