スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Prev.    Category    Next 

Emacs の tags 機能の使い方

今回は Emacs の tags の機能についての記事です。
この機能を使えば、 Emacs で IDE のような 定義へのジャンプ、 関数の補完といったことが行えます。

TAGS ファイルの作成

まず、 TAGS というファイルを作成する必要があります。 これには etags コマンドを使用します。

Unix 系では Emacs がインストールされていれば、まず入っていると思います。
Windows では Emacs の exe ファイルがある bin フォルダーを PATH に追加しておきます。 作成する場合は対象としたいファイル群を引数で指定します。 実行後、 TAGS はカレント ディレクトリー(フォルダー)に作成されます。
$ etags *.h *.cpp
次章で説明する tags の機能を使用すると最初に TAGS ファイルの位置を訊かれます。
TAGS ファイルを直接指定してもいいのですが、 ディレクトリーを指定すれば、 ディレクトリー内にある TAGS の名前のファイルを使用します。

通常、使用する TAGS ファイルは Emacs 内で一つです。
変更したい場合は、 M-x tags-reset-tags-tables で一旦リセットするか、 M-x visit-tags-table で明示的に指定します。

tags の機能

タグジャンプ

関数等の定義位置にジャンプする機能です。
tags の機能の中では一番よく使う機能ではないでしょうか。
M-.
最初の定義位置にジャンプします。
C-u M-.
ジャンプ先として複数の候補がある場合があります。このコマンドで次の場所にジャンプすることができます。
M-*
ジャンプ後、前の位置に戻りたいときに使用します。
C-x 4 M-.
最初の定義位置を探してそれを別のウィンドウに表示します。

検索と置換

Emacs でよく使う検索(C-s [Enter])と逐次置換(M-%)はバッファー内が対象です。 これを TAGS ファイル作成に使ったファイルにすることができます。
逐次置換はリファクタリングなどで、関数名等を変えたいときに役に立ちます。
検索 M-x tags-search
指定した文字列を検索します。
最初に見つかったところで止まるので、さらに検索を続けたい場合には M-, を押します。
逐次置換 M-x tags-query-replace
逐次置換の操作はバッファー内の置換と一緒です。
そのままでも対象を順次回っていきますが、検索と同様に一旦終了させた後、 M-,で再開させることもできます。
正確には検索や置換は文字列ではなく、正規表現で指定します。
Emacs での正規表現や置換の操作について、詳しくは以前の記事を見てください。

補完

M-Tab はモードにあわせたシンボルの補完です。 C, C++ モードなどでは TAGS を使った補完となります。 ただし、 M-Tab は Emacs-Lisp モード以外では、個人的にはあまり使っていません。
補完としては私は循環式の dabbrev-expand (M-/) をよく使っています。 TAGS ファイルをロードすると、 その内容も dabbrev-expand の対象となるので、それで補完することができます。

その他

あまり使用頻度は高くないと思いますが、そのほかの tags 機能についても Emacs マニュアルのリンクだけ紹介しておきます。

関連記事
スポンサーサイト
Prev.    Category    Next 

Facebook コメント


コメント

コメントの投稿

Font & Icon
非公開コメント

このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
9位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
3位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

09月 | 2017年10月 | 11月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。