Reading Linux Kernel #ツール

カーネル読むためのツール導入。
環境は、Mac(Leopard) + Carbon Emacs 22.2.1です。
1. GNU GLOBAL
MacPortsからインストール。

$ sudo port install global

タグファイルを生成。以下のコマンドをソースのトップディレクトリで実行。

$ gtags -v
Done.

以下の4ファイルが生成された。

  • GPATH
  • GRTAGS
  • GSYMS
  • GTAGS

Emacsから使用できるように設定。
/opt/local/share/gtags/gtags.elをパスの通った場所へコピー。

$ cp /opt/local/share/gtags/gtags.el ~/emacs/

.emacsへ追加。

(autoload 'gtags-mode "gtags" "" t)
(setq gtags-mode-hook
      '(lambda ()
         (local-set-key "\M-t" 'gtags-find-tag)        ;関数定義にジャンプ
         (local-set-key "\M-r" 'gtags-find-rtag)       ;関数呼び出し場所にジャンプ
         (local-set-key "\M-s" 'gtags-find-symbol)     ;シンボル参照先にジャンプ
         (local-set-key "\C-t" 'gtags-pop-stack)       ;前のバッファに戻る
         ))
(add-hook 'c-mode-common-hook
          '(lambda()
             (gtags-mode 1)
             (gtags-make-complete-list)
             ))


2. App::Ack
こちらもMacPortsからインストール。

$ sudo port install p5-app-ack

Emacsから使用できるように設定。

(add-hook 'dired-load-hook
          '(lambda ()
             (load-library "ls-lisp")
             (setq ls-lisp-dirs-first t)
             (setq dired-listing-switches "-AFl")
             (setq find-ls-option '("-exec ls -AFGl {} \;" . "-AFGl"))
             (setq grep-find-command "ack --nocolor --nogroup ")
             (require 'wdired)
             ))

M-x grep-findで検索。


GNU GLOBAL source code tagging system
App::Ack - A container for functions for the ack program - metacpan.org