タグジャンプ


 編集テキスト内で、「ファイル名」と「行番号」(または「行内容」)が所定の書式で 示されている行に、カーソルを置いて、「タグジャンプ」を実行すると、その「ファイル名」の ファイルの編集ウィンドウが開いて、その「行番号」の行(または、その「行内容」がある行)に カーソルが移動します。

 Grep出力結果や、 コンパイルエラーメッセージ等では、各該当箇所の「ファイル名」と「行番号」が 所定の書式で示されていますが、タグジャンプを使うと、その該当箇所のテキストを 即時に編集ウィンドウに表示できるので、非常に便利です。 タグジャンプ機能は、Grep等の機能と合わせて、 複数のソースファイルに分割されているプログラムを編集する時等には、 必須といっても良いでしょう。

■ タグジャンプの起動

 タグジャンプの機能は、初期環境では、
  ・F9 キー
  ・メニューバーの「移動」→「タグジャンプ」
  ・コンテキストメニューの「ジャンプ」→「タグジャンプ」
に割り当てられています。また、「Grep結果出力ウィンドウ」では、便宜のために、ダブルクリックでも 起動できるようになっています。

 タグジャンプを起動した時、対象のファイルは、次のように検索されます。

(1)対象のファイルが相対パスの場合
  (A)「Grep結果出力ウィンドウ」から起動した場合
    Grepフォルダを起点に、検索されます。
  (B)通常の編集ウィンドウから起動した場合
    現編集ファイルのフォルダを起点に、検索されます。
(2)対象のファイルが絶対パスの場合
   その絶対パスが検索されます。

 対象のファイルが見つからない場合には、そのファイルのフォルダを指定し直すか どうかの確認メッセージが表示されます。ここで、「はい」を選べば、 そのフォルダを選択するためのダイアログボックスが表示されます。

■ タグジャンプ対象行のパターン

 タグジャンプの対象となる「ファイル名」と「行番号」(または「行内容」)の書式 は、環境設定の「検索/ジャンプ」→「タグジャンプ」内の「タグジャンプ対象行のパターン」で、3候補まで任意に指定できるようになっています。各候補は、第1、第2、第3の 順に、現カーソル行と照合されて、最初に一致した候補が採用されます。

 このパターンの指定には、「正規表現」を使います。 この正規表現では、「ファイル名」を特定する部分を、第1番目の「参照グループ」に、 「行番号」(または「行内容」)を特定する部分を、第2番目の「参照グループ」にします。例えば、

 〈ファイル名〉(〈行番号〉): ・・・・・

というパターンを、タグジャンプの対象にする場合の正規表現は、

  ^@([\w.\\]+)\(@(\d+)\):

となります。但し、実際には、もう少し汎用性があって厳密な正規表現にする必要が あります。ちなみに、初期環境では、第2候補が、このパターンを対象としていますが、 その正規表現は、次のような設定になっています。

  ^\s*@([^\s][^,;"<>|()\x00-\x1F]*)\s*(\(@(\d+)\))?\s*:


 「行番号」ではなく、「行内容」で行を特定する場合、例えば、

 〈ファイル名〉: "〈行内容〉" ・・・

というようなパターンを、タグジャンプの対象にする場合の正規表現は、

  ^@([\w.\\]+):\s*@(#:"":)

となります。但し、実際には、もう少し汎用性があって厳密な正規表現にする必要が あります。ちなみに、初期環境では、第1候補が、このパターンを対象としていますが、 その正規表現は、次のような設定になっています。

  ^\s*@([^\s][^,;"<>|()\x00-\x1F]*)\s*:\s*@(#:"":)


 「タグジャンプ対象行のパターン」を規定する正規表現内で、「ファイル名」を特定する第1番目の参照グループは、必須 ですが、「行番号」(または「行内容」)を特定する第2番目の参照グループ は、省略可能です。例えば、

 #include "〈ファイル名〉"
 #include <〈ファイル名〉>

というパターンを、タグジャンプの対象にする場合の正規表現は、簡単には、

  ^#include ["<]@([\w.\\]+)[">]

となります。ちなみに、初期環境では、第3候補が、このパターンを対象としていますが、 その正規表現は、次のような設定になっています。

  ^\s*\#\s*include\s*["<]@([^,;"<>|*?\x00-\x1F]+)[">]


 なお、「行番号」(または「行内容」)を特定する第2番目の参照グループの一致部が無い場合、 タグジャンプは、次のように行なわれます。 まず、タグジャンプ先のファイルが既にオープンされていれば、 そのファイルをアクティブします。その時のカーソル行は、現状のままです。 一方、タグジャンプ先のファイルがオープンされていなければ、そのファイルは、 最近使ったファイルの履歴を参照して、開かれます( ⇒参照 )。もし、そのファイルが履歴になければ、最初のカーソル行は、 先頭行になります。

■ タグジャンプ時の画面内のカーソル位置

 タグジャンプした時に、カーソルを画面内のどの位置に置くかは、環境設定の 「検索/ジャンプ」→「タグジャンプ」内の「ジャンプした時のカーソルの画面内の位置」で、選択できるようになっています。初期環境では、 「画面行数の1/5行目」になっています。この設定では、例えば、 画面の行数が30行の場合、タグジャンプ後に表示される画面内で、カーソルの位置は、 上から6行目になります。