ダイレクトタグジャンプ

NyanFi

ダイレクトタグジャンプ

テキストビュアーで、TagJumpDirect (エディタ)/ TagViewDirect (ビュアー) コマンドを実行すると、カーソル位置の単語でダイレクトタグジャンプを行います。
また TagJump_DJ /TagView_DJ でタグジャンプができなかった場合もダイレクトタグジャンプを試みます。
なお、テキストエディタへの行番号指定は、オプション設定 - エディタ で設定しておいてください。

タグファイル
ダイレクトタグジャンプを行うには、あらかじめ ctags (hp.vector.co.jp/authors/VA025040/) によって、タグファイル tags を作成しておく必要があります。
ctags は、外部ツール などに登録しておくと便利です。
実行時には、対象ファイルのディレクトリを順にさかのぼり、最初に見つかった tags ファイルを利用します。
タグファイルの形式は、行番号(--excmd=number)と検索パターン(--excmd=pattern)の両方に対応しています。
検索パターンの場合、対象ファイルを一旦読み込んで検索し、内部で行番号に変換しています。
候補一覧
ジャンプ先の候補が複数ある場合、候補一覧が表示されます。
一覧には、「ファイル名」、「更新日時」、「場所」(tags から相対)、「行番号」/「パターン」、「備考」(拡張フィールド)が表示されます。不要な項目は、列幅を変更すれば隠せます。
一覧で 190ENTERキーを押すと、TagJumpDirect ではテキストエディタで、TagViewDirect ではテキストビュアーで開いて定義位置にジャンプします。
カーソル移動は、ファイラーで割り当てられているのと同じキーで行えます。
なお、2ストロークキー操作には対応していません。

タグ名検索

ファイラーまたはテキストビュアーFindTagName コマンドを実行すると、タグ名検索ダイアログが開きます。

キーワードを入力すると、それが含まれるタグ名の候補が下の一覧に表示されます(インクリメンタルサーチ)。
複数のキーワードを空白で区切って入力するとAND検索、"|" で区切るとOR検索になります。区切りが混在しているその場合は、空白(AND)の方が | (OR)よりも優先順位が高くなります。
: "set" と "nyan" の両方が含まれているか、"get" と "nyan" の両方が含まれている。
 set nayn|get nyan

BSまたはCtrl+Hで一文字後退、インクリメンタルサーチで ClearIncKeyword コマンドが割り当てられているキーで入力がクリアされます。
また MigemoMode コマンドが割り当てられているキーで Migomo モードに切り替えると、日本語を含むタグも検索できます(例: HTML文書の見出しなど)。

タグ名一覧では(or Ctrl+E) / (or Ctrl+X)キーでカーソル移動が、PGUP(or Ctrl+R) / PGDN(or Ctrl+C)キーでページ移動が可能です。
ENTERキーを押すと、一覧で選択されているタグ名でダイレクトタグジャンプを行います。一覧の項目をダブルクリックしてもかまいません。FindTagName のパラメータに EJ が指定されている場合はテキストエディタで、そうでない場合はテキストビュアーでダイレクトタグジャンプします。ジャンプ先の候補が複数ある場合は、候補一覧が表示されます。

ファイラーやテキストビュアーで割り当てられているのと同じキー操作でも、一覧でのカーソル移動などを行えます。
また インクリメンタルサーチIncSearchDown/ IncSearchUp コマンドが割り当てられているキーでも、上下移動できます。

FileEdit コマンドが割り当てられているキーを押すと、パラメータ指定にかかわらずテキストエディタで、また TextViewer コマンドが割り当てられているキーを押すとテキストビュアーでダイレクトタグジャンプします。なお、テキストビュアーで ClipCopy コマンドが割り当てられているキーを押すと、選択されているタグ名のコピーだけを行ってダイアログを閉じます。
これらは、右クリックメニューからも可能です。

単純な文字キーは入力用として優先されるため、必要な場合は特殊キーや修飾付きキーでも割り当てておいてください。
なお、2ストロークキー操作には対応していません。

タグ名一覧の下には、カーソル位置タグのジャンプ先ファイル名が一覧表示されます。
ファイル名一覧にフォーカスがある場合、カーソル位置のファイルに直ちにダイレクトタグジャンプできます。



Tips
ctags は、正規表現の置換パターンを定義することによりプログラミング言語以外でも利用できます。
例えば以下のようにして tags ファイルを作成すると、HTML文書の見出し(H1)内容をタグとして検索できます。
ctags --regex-html=/<h1[^>]*>(.+)<\/h1>/\1/h,header/ *.html
パターン定義が多い場合は、--options によってファイルからオプションを読み込むことも可能です。