長らくエディタはGeanyを使ってたんだけど、最近はドライバを作ることも多く、ソースコードを参考にするのにLinux Kernelを追いかけることも多くなってきた。 ソースコードを追いかけるのはcscopeを使っているんだけど、エディタは久々にEmacsに戻し、ソースコードを追いかける環境を整えることにしてみた。
ソースコードを追いかけるのはcscopeとglobalの環境を整えてみた。
ここ5年ほどはGeanyを使用してたけど、キー操作はEmacsの操作で叩いてしまうことが多いので誤動作とか多かったけど…。
% sudo apt-get install emacs24
Emacs環境でcscopeを使用する場合、xscope-elを使用する。
参考にしたのは次のサイトです。
http://www.emacswiki.org/emacs/CScopeAndEmacs
% sudo apt-get install global
xcscopeのパッケージを次のサイトからバージョンの合うものをダウンロードする。
http://packages.ubuntu.com/search?keywords=xcscope&searchon=names&suite=all§ion=all
% dpkg -i xcscope-el_1.0-2_all.deb
.emacsに次を追加する。
(load-file "/usr/share/emacs/site-lisp/xcscope/xcscope.el")
(require ''xcscope)
(setq cscope-do-not-update-database t)
% cscope-indexer -r
(setq default-tab-width 4)
C-c s s (カーソルの置かれた)シンボルを検索
C-c s d (カーソルの置かれた)シンボルの定義を検索
C-c s c (カーソルの置かれた)関数を呼んでいる関数群を検索
C-c s C (カーソルの置かれた)関数から呼び出している関数群を検索
C-c s t テキスト文字列を検索
C-c s e egrepパターンで検索
C-c s f ファイル検索
C-c s i #include しているファイルを検索
C-c s u マークをポップ(元のファイルに戻る)
% sudo apt-get install global
.emacs
(require ''gtags)
(global-set-key "M-t" ''gtags-find-tag)
(global-set-key "M-r" ''gtags-find-rtag)
(global-set-key "M-s" ''gtags-find-symbol)
(global-set-key "C-t" ''gtags-pop-stack)
% gtags
C-t gtagsでジャンプする一つ前の状態に戻る M-s 指定した変数、定義の定義元を探す M-r 指定した関数が参照されている部分を探す M-t 指定した関数が定義されている部分をさがす