我使用 cscope emacs 扩展(并发现它非常有用)。不幸的是,仅搜索当前目录及以下目录的默认行为对我来说是不够的,因此我将 cscope-set-initial-directory 用于我选择的目录。不幸的是,这对我来说也不够用,因为我有多个不同的项目,每个项目都有自己的“初始”目录。
我已经为我在 emacs 中使用最多的三个 cscope 方法设置了热键
(global-set-key [f9] 'cscope-find-this-text-string)
(global-set-key [f8] 'cscope-find-global-definition)
(global-set-key [f7] 'cscope-find-this-symbol)
我认为以某种方式用函数包装这些调用以在给定路径上运行 cscope-set-initial-directory (通过查看缓冲区文件名是什么而生成)会很容易。但我一直没有成功!
(global-set-key [f9] (lambda () (interactive) (cscope-set-initial-directory "blah") 'cscope-find-this-text-string))
不起作用。我也尝试向两个 cscope-hooks 添加钩子,但在我的正常使用模式中,它们似乎都没有被调用。我什至不介意每次切换缓冲区时运行一次它,但我也没有在任何地方看到一个钩子:/。
有人可以帮忙吗?:)