在Emacs中gtags非常慢

时间:2013-09-15 18:59:42

标签: macos emacs emacs24 dot-emacs gnu-global

我在emacs中使用gnu global,一切正常,但命令“gtags-find-tag”搜索速度太慢,无法忍受。只有这个命令非常慢,其他像“gtags-find-rtag”这个命令我认为是正常的。 我删除了其他配置,如cedet,以便排除这些效果,但这个问题仍然存在。 我是否会错过全局或emacs的一些配置步骤?或者其他平台(linux)中的任何人都有这个问题?

===
我的Emacs是Mac OSX版本的emacs是24.3,GNU global是6.2.8,我的配置文件是

(add-to-list 'load-path (expand-file-name "~/.emacs.d"))
(setq load-path (cons "/Users/xxx/.emacs.d/gtags.el" load-path))
(autoload 'gtags-mode "gtags" "" t)
(add-hook 'c-mode-hook
   (lambda ()
     (gtags-mode t)
   ))

1 个答案:

答案 0 :(得分:2)

我不使用Global(我确实有意义尝试),但查看codegtags-find-taggtags-find-rtag是非常相似的功能。

我认为差异必须在完成读取阶段或发现阶段,两者都在调用Global。

在完成阅读中,'gtags'传递选项-c,而'grtags'传递-cr

在查找阶段,'gtags'传递-x,而'grtags'传递-xr

我首先会尝试确定它在Emacs之外是否比它内部更快。以上可能足以让您对此进行测试,但是您应该能够通过使用M-x debug-on-entry RET call-process RET(随后可以使用M-x cancel-debug-on-entry取消)来确定正在使用的命令,然后运行gtags函数并查看哪个参数出现在该函数调用的堆栈跟踪中。

如果您无法制作堆栈跟踪的正面或反面,请尝试将其复制并粘贴到您的问题中。

修改

基于评论中的信息,似乎是不区分大小写的论证,由于某种原因,这会使事情变得不合理。

您应该可以在此处禁用该行为:

M-x customize-variable RET gtags-ignore-case RET