last updated:2023/12/27

Hidemaru Q and A

第II部〜知っていると便利な秀丸の機能
 アウトライン解析の枠


アウトライン解析の枠

秀丸エディタ Ver.6.00以降では「アウトライン解析の枠」が使用できます。

文書の構造をツリー状に表示したり、分類ごとにまとめたりして表示できます。また、「関数一覧」や「強調表示一覧」も表示できます。

「アウトライン解析の枠」を表示するには、メニューの「表示」から「アウトライン解析の枠」にチェックを入れます。

[解説]

「アウトライン解析の枠」に各種項目を表示するには設定が必要です。

  • 「ツリー表示」の「通常」や「分類」では、ツリーのレベルや分類を設定します。

  • 「強調表示一覧」では、ファイルタイプ別で設定する強調表示の設定を使用します。

    アウトライン解析の方法-強調表示一覧

  • 「関数一覧」では、秀丸エディタがファイルを解析し、関数の一覧を自動的に表示します。現状では「言語」の内容は「C言語/Java等」のみしか選ぶことができません。「C言語/Java等」の場合、以下の言語に対応しています。

    • C
    • C++
    • Java
    • JavaScript
    • C#
    • Objective-C
    • go言語

とりあえず使ってみよう

「アウトライン解析の枠」にどの様に表示されるかを見るため、デフォルトで持っている設定を使ってみます。

メニューの「その他」-「ファイルタイプ別の設定」でダイアログを表示させ、「設定の対象」-「アウトライン」-「解析」を選択し、「アウトライン解析の方法」を「ツリー表示-通常」を選択します。

アウトライン解析の方法-ツリー表示-通常

「リセット」を押すと表示されるメニューから、「"."の数で階層を表す用」を選ぶと、「ツリー表示の定義」が以下のように設定されます。

アウトライン解析の方法-ドットの数で階層を表す用

一時的な設定にするため「保存しないで更新」を押して、「ファイルタイプ別の設定」を閉じ、以下の内容をコピーして設定した秀丸エディタに貼り付けます。

.レベル1-1
表題-1
..レベル2-1
章-1
...レベル3-1
節-1
....レベル4-1
項-1
.....レベル5-1
段落-1
......レベル6-1
その他-1

.レベル1-2
表題-2
..レベル2-2
章-2
...レベル3-2
節-2
....レベル4-2
項-2
.....レベル5-2
段落-2
......レベル6-2
その他-2

設定内容に従い「アウトライン解析の枠」にツリー状の構成が表示されます。

アウトライン解析の方法-ツリー表示

簡単ですが「アウトライン解析の枠」の「ツリー表示」の例になります。「アウトライン解析の枠」の各項目をクリックすると、その行にカーソルが移動したり各項目内をすべて範囲選択する等、操作が可能になります。(例は1行なのであまり意味は無いですが…)

アウトライン解析で「ツリー表示の定義」を設定すると、「折りたたみ」「見出し」「部分編集」ができるようになります。「第II部〜知っていると便利な秀丸の機能 アウトライン関連 見出し・折りたたみ・部分編集」を参照。

設定を変更してみよう

「ツリー表示の定義」の設定について解説します。

まず、「ツリー表示の定義」の「レベル1」を選択し「プロパティ」を押して、設定画面を表示させます。

アウトライン解析の方法-ドットの数で階層を表す用

初期状態は「オプション」が閉じられた状態で表示されますが、「オプション」ボタンを押す事でオプション設定部分の表示/非表示を切り替える事が出来ます。

アウトライン解析の方法-プロパティ画面小

アウトライン解析の方法-矢印

アウトライン解析の方法-プロパティ画面大

見出しの定義

ここの「見出しの定義」とオプションの「表示範囲」でツリーに表示される内容が決まります。

「行頭の文字列」

行頭にある指定された文字列を見出しとして解釈します。

とりあえず使ってみよう」で使用した「"."の数で階層を表す用」 は、この設定になります。

文字列内の"n"は、数値としても解釈されます。

(n)   --> (1)、(10)、(100)
第n章 --> 第1章、第10章、第100章
n.n   --> 1.2、2.1、3.4

"n"は半角数字しか認識しません。全角や漢字を含めたい場合は「文字列」にして「正規表現」を使ってください。

"n"を使った設定例

  • ツリー定義:
    行頭の文字列の設定

  • 実際の表示:
    行頭の文字列設定表示

「行頭の記号」

設定した文字のいずれかを見出しとして解釈します。(設定した内容を文字集合として扱う)

#%&   --> "#" or "%" or "&" のいずれかの文字を見出しと認識する

ツリーの操作」で「レベルの操作」を行った場合は、先頭の文字を使います。

設定例

  • ツリー定義:
    行頭の記号の設定

  • 実際の表示:
    行頭の記号設定表示

「文字列」

設定した文字列を見出しとして解釈します。以下のオプションが選択可能です。

  • 大文字/小文字の区別
  • 単語の検索
  • 正規表現

見出し-文字列

正規表現をONした場合、分類モード時のグループ名に正規表現タグを指定できます。「ツリー表示の分類について」を参照してください。

「関数」
関数を見出しとして解釈します。対応する言語は、関数一覧と同じになります。
「強調表示」

強調表示されている行を見出しとして解釈します。

見出し-強調表示

オプションの説明
「インデント禁止」

「行頭の文字列」と「行頭の記号」のみに設定可能な項目。見出しに設定した文字列/記号の前に、タブ文字や空白文字を認めない場合は設定します。

  • 例)OFFの場合は、「レベル1-3」を見出しと認識する。(ONの場合は認識しない)

    インデント禁止

「インデントの深さでレベルを決める」

前の見出しとの比べて、インデントが深ければ1つ下のレベルになります。

「ツリー表示の定義」の「レベルの見せ方」が「絶対的」になっていると、この指定は無効です。

実際に設定してみます。「追加」ボタンを押して、現状の設定に以下の内容を追加します。

インデントの深さでレベルを決める設定

一時的な設定にするため「保存しないで更新」を押して、閉じます。

「レベル2-1」に以下の内容を追加します

- aaaa
  * bbbb

インデントの深さでレベルを決める設定例1

「レベルの見せ方」が「絶対的」になっている為、レベル7の見出しとして認識されます。ここで設定を「絶対的」から「相対的」に変更します。

「ツリー表示の定義」画面にある「ツリーの動作」をクリックすると、設定画面が開きます。

レベルの見せ方を開く

ここで、レベルの見せ方を、「相対的」に変更します。

ツリーの動作設定画面

一時的な設定にするため「保存しないで更新」を押して、閉じます。

インデントの深さでレベルを決める設定例2

「絶対的」な場合と表示状態が変化しましたが、これは直ぐ上の見出しとレベルの比較を行い、レベルが低ければ「下位レベル」と判断している(レベル7とは認識しない)からです。さらに、"bbbb" は、"aaaa" より、インデントが深くなっている為、さらに下位と判断されます。

やっと、オプションの説明になります。

ONの場合認識

├レベル2-1
│└aaaa      レベル2より低いレベルなので1段下げ
│  └bbbb    インデントの深さより、"aaaa" より低いレベルなので1段下げ

OFFの場合認識

├レベル2-1
│├aaaa      レベル2より低いレベルなので1段下げ
│└bbbb      インデントの深さは関係ないので、"aaaa" と同じレベル

このチェックがONの場合、インデントだけで、レベルを決める事が出来ます。

「1つ上のツリー定義と同じレベルとして定義」

「追加」していくと上のレベルから順番に定義されていきます。「インデントの深さでレベルを決める」の説明で追加した項目は、「レベル7」になっています。

ツリーの表示画面1

このオプションを「ON」にすると、「一つ上のツリー定義と同じレベル」になります。この場合は「レベル6」。"LV"の項目が空白なのは一つ上と同じという意味。

ツリーの表示画面2

通常は「一つのレベルに対し定義は1個」という状態ですが、このチェックをONにする事で「一つのレベルに対し定義を複数個」設定する事が出来ます。

「コメントを無視」
ファイルタイプ別の設定」-「デザイン」で、「コメント」と認識している箇所を見出しと認識させたくない場合は「ON」にしてください。
「文字定数を無視」
ファイルタイプ別の設定」-「デザイン」で、「文字定数」と認識している箇所を見出しと認識させたくない場合は「ON」にしてください。
「展開/折りたたみ状態」

ツリー表示の状態を設定します。

  • 標準
    子があるときは初期状態で展開し手動で折り畳みも可能。
  • 初期状態でツリーを折りたたみ
    最初に表示する場合はツリーを折りたんだ状態にする。
  • 展開したままで固定
    子があるときに[+]/[-]マークなどは表示せずに、常に展開された状態。
「表示範囲」

見出しを表示する範囲を決めます。

以下の場合に適用されます。

  • 「アウトライン解析の枠」
  • 「アウトライン解析...」のダイアログ
  • 「見出しバー」

以下の選択ができます。

  • 自動

  • ヒットした文字以降
    ヒットした文字以降

  • ヒットした文字より後
    ヒットした文字より後

  • ヒットした文字のみ
    ヒットした文字のみ

  • 行全体
    (この例では「ヒットした文字以降」と同じ)

  • 次の行全体
    次の行全体

ツリーに表示する内容を任意の部分だけにしたい場合は、「見出しの定義」を「文字列」にして、正規表現を使います。後読み(先頭にある記号の指定等)と先読み(表示したくない後方部分を指定)を使うか、ヒットした扱いにするタグ指定を使います。そして「表示範囲」を「ヒットした文字のみ」にすれば、任意部分のみ表示可能になります。

「自動的な選択/部分編集の対象」

ONの場合、以下の状態に影響があります。

  • 「部分編集」コマンドを実行したとき、自動的に部分編集となる範囲の境界となる見出しかどうか
  • 「折りたたみ用の余白」で大きな[+]/[-]マークとして表示され、折りたたみの対象となるかどうか
  • 「次の見出し」「前の見出し」コマンドでジャンプする対象となるかどうか
「見出しバーに表示する対象」
OFFにすると、見出しバーに表示しなくなります。
「行番号表示」
見出しに行番号も表示する/しないの設定です。
ツリー表示の分類について

「分類モード時のグループ名」を入力しておくと「ツリー表示-分類」が使用できます。

分類について

現状の設定にグループ名を追加してみます。

分類について

「ツリー表示-分類」に変更すると、表示が以下のように設定したグループ名毎になります。

分類時の表示

「見出しの定義」で「文字列」を選択し「正規表現」を有効にした場合、グループ名に正規表現でマッチしたタグを指定できます。

分類時の表示-正規表現タグの指定

ツリーの操作

「アウトライン解析の枠」で、見出しの項目を選択すると、右クリックメニューでツリーの単位の操作が可能です。

ツリーの右クリックメニュー1

例えば「切り抜き」ですが、選択した見出し下にあるツリーも対象になります。

実行前

├レベル1-1
│└レベル2-1
│  └レベル3-1  <----ここを選択し、「切り抜き」を実行すると下のツリーも対象になる。
│    └レベル4-1
│      └レベル5-1
│        └レベル6-1
├レベル1-2

「切り抜き」実行後

├レベル1-1
│└レベル2-1
├レベル1-2

「コピー」や「範囲選択」も同様に、ツリー構造になっている場合は、選択以下のツリーも対象になります。

「上に挿入」/「下に挿入」は、選択した見出しの上か下に、指定したレベルの見出しを追加可能です。

ツリーの右クリックメニュー2

「ツリー操作」では、見出しのレベル上げたり、下げたりも可能です。「ツリーそのものをコピー」では「アウトライン解析の枠」の内容をクリップボードにコピーします。ツリーの場合は罫線(?)ではなく、レベルの数だけTABコード(0x09)が入ります。

ツリーの右クリックメニュー3


ページトップ 目次に戻る