1

我在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)
   ))
4

1 回答 1

3

我不使用 Global (我一直想尝试它),但查看代码gtags-find-tag并且gtags-find-rtag是非常相似的功能。

我认为差异必须在完成读取阶段或查找阶段,两者都调用全局。

在完成读取中,'gtags' 传递 option -c,而 'grtags' 传递-cr

在查找阶段,“gtags”通过-x,而“grtags”通过-xr

我首先会尝试确定它在 Emacs 之外是否比在其内部更快。以上内容可能足以让您对此进行测试,但您应该能够通过 using 确定正在使用的确切命令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

于 2013-09-16T05:09:12.893 回答