2016年2月12日金曜日

んんん? cscopeがEmacs上で動かないんだけど? (linux)

Cのソースコードを読むときに使うと便利だというcscopeというソフトがあります.windowsでも動くらしいんだけど、以下はLinuxでのハナシです.

cscopeの使い方のおおざっぱなイメージとしては、
 1)emacsでCソースを開く
 2)不明なシンボル名のところにカーソルを移動させてCtl-c s dなどと打つ
 3)すると、そのシンボルの定義を検索してすっ飛んでくれる (裏でcscopeが動く)
というものです.なにか便利そうだわ.

cscopeを紹介している日本語のサイトはこのようなのがあります.
 http://inside.ascade.co.jp/node/68
 https://docs.oracle.com/cd/E19205-01/820-1209/6nct6tss5/index.html
 http://prog.quarklink.org/linux/xcscope/

emacsでなく、viでも使えるし、cscopeを起動してもよしなのですが、わたしはソニーのNEWSを1992年(CPUは68040)に使って以来、emacsで慣れちゃったのでどうにもこうにもviが使えないので、今回もemacsを使い、emacsからcscopeを呼び出して使いたいのです.

さて、諸々をインストールしてみて、emacsの設定を各種サイトを参考にやってみたものの、肝心の検索コマンドであるところの、
ctl-c s d
がundefinedで動きません.なんでだろうなぁ.

-----
解決に至った経緯を以下に記します.

1) xcscope.elはこちらからDLしました.
https://github.com/dkogan/xcscope.el

2) わたしの環境では、同ファイルをここに置きました.
/usr/share/emacs/site-lisp/xcscope/xcscope.el

3) .emacsを編集します.ネットの情報ではこの3行を追加です.1行目はxcscope.elを置いたディレクトリを指しています.
(load-file "/usr/share/emacs/site-lisp/xcscope/xcscope.el")
(require 'xcscope)
(setq cscope-do-not-update-database t)

ところが、この設定だとctl-c s dが動かないんですわ.

4) そこでxcscope.elを読んでみると、.emacsに追加するのは4行必要なのだそうです.cscopeを起動するために赤字の行が必要.
(load-file "/usr/share/emacs/site-lisp/xcscope/xcscope.el")
(require 'xcscope)
(cscope-setup)
(setq cscope-do-not-update-database t)

わたしがemacsの使い方の基本を知らないだけかもしれない.手打ちでcscopeを起動するのが当たり前の作法なのかもしれない.ともあれ赤字の一行によって自動的にcscopeが起動するようになり、ctl-c s dが動くようになりました.

以上cscopeを試されるときにはご注意のほどをヨロシク.

かしこ


人気ブログランキングへ

0 件のコメント:

コメントを投稿