![如何从 emacs 启动时加载/设置 TAGS?](https://linux22.com/image/1347222/%E5%A6%82%E4%BD%95%E4%BB%8E%20emacs%20%E5%90%AF%E5%8A%A8%E6%97%B6%E5%8A%A0%E8%BD%BD%2F%E8%AE%BE%E7%BD%AE%20TAGS%EF%BC%9F.png)
我对 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,您总是可以自动加载最新的标签文件。
emacs_startup.bash
在项目目录中创建一个包含以下内容的文件:find . -name "*.yourCodeFileExtensionHere" -print | etags - cp TAGS ~/CurrentTagsCopy emacs
chmod u+x emacs_startup.bash
在您的主 emacs 配置文件中,添加以下行:
(setq tags-file-name "~/CurrentTagsCopy")
要开始工作,请 cd 到您的项目目录并执行
./emacs_startup.bash
。