私は cscope emacs 拡張機能を使用しています (非常に便利です)。残念ながら、現在のディレクトリ以下のみを検索するデフォルトの動作では不十分なので、選択したディレクトリに対して cscope-set-initial-directory を使用します。残念ながら、私にはそれぞれ独自の「初期」ディレクトリを持つ複数の異なるプロジェクトがあるため、これも不十分になりました。
私は、emacs で最もよく使用する 3 つの 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)
これらの呼び出しを関数でラップして、特定のパス (buffer-file-name を調べて生成) で cscope-set-initial-directory を実行するのはかなり簡単だと思いました。しかし、私はまだ成功していません!
(global-set-key [f9] (lambda () (interactive) (cscope-set-initial-directory "blah") 'cscope-find-this-text-string))
動作しません。また、2 つの cscope-hook にフックを追加しようとしましたが、通常の使用パターンではどちらも呼び出されないようです。バッファを切り替えるたびに一度実行してもかまいませんが、そのためのフックはどこにもありませんでした:/。
誰か助けてくれませんか?:)