我在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)
))
答案 0 :(得分:2)
我不使用Global(我确实有意义尝试),但查看code,gtags-find-tag
和gtags-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