我对 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
。