miの見出しリストの作成方法


macOS専用のテキストエディタ 「mi」をプログラミング学習用のノートとして使っています。
画面右側にでてくる見出しリストに見出しを作成する方法を自分なりにまとめました。

実装したい内容

インデントなしをタイトルとして見出しにする
Tabキー1回のインデントをそのタイトル中の見出しにする
具体的には

初期状態では、メモを書いた時に右側の見出しリストに何も表示されていないこれを

上記のように右側の見出しリストに表示させたり、メモ側にも見出しに色を付けたりといったことを実装します。

実装準備

細かく自分が決めたルールを使いたい場合は正規表現を学ぶことでより自分にあった見出しをつけることができます。
ここではインデントなしで入力した部分とTabキーを1回おしてインデントした時の見出しの作り方について紹介します。

実装手順

左上のmiをクリック ⇢ モード毎の設定 ⇢ 標準をクリック

すると以下のようなウィンドウがでるので見出しタブをクリック

以下のような画面が出てきます。
ここでは見出しの設定をします。
自分がメモとして書いたどんなものを見出しとして認識してもらうかということです。
今回の私の場合はインデントしていないものとTAB1回のインデントを認識させ、それらも見出しにします。

手順としては
①新しい見出しルールを作成する。
②見出しルール名をきめる
③正規表現でルールを表現する
④見出しリストに表示するチェックを入れる
③の正規表現でルールを決めるところが一番難しいですが、私と同じルールで見出しを作りたい場合はコピペでできます。
正規表現とは特殊な記号や文字を使って、特定のパターンを表すことができるミニ言語みたいなものです。
今回は見出しにする文字のパターンを特殊な記号や文字を使って表すことで、miに見出しがどれか判別してもらおうということです。

③の正規表現の部分には
インデントなしの見出し

[^\s].+

TAB1回のインデントの見出し

\s{1}[^\s].+

を入力してください。
ちなみに\はoptionキーを押しながら¥キーを押すと入力できます。
入力後は左下にある変更を反映を押すと反映されます。

どういう意味か簡単に説明すると
[^\s]では
^が否定の意味
\sが空白文字(半角スペース、タブ文字、改行文字など)
となるので[^\s]で空白文字でないものという意味になります。
.は任意の文字1文字
+は直前の文字が1文字以上
という意味なので「.+」では任意の文字1文字以上という意味になります。
まとめると、開始文字が空欄でなく、任意の文字が1文字以上続く文字列を見つけると見出しとして認識します。

\s{1}[^\s].+
こちらでは\sが{1}、つまり空欄文字が1つあり、その後は上記と同様空欄文字以外が1文字以上という記述になります。
まとめると、開始文字が空欄文字で、2文字目からは空欄以外の任意の文字が1文字以上という文字列を見つけると見出しとして認識します。

変更を反映をクリックすると見出しに色をつけている場合は色がつき、右側の見出しリストに見出しとして認識されたものが表示されます。

今回設定した正規表現を変えることで、私とは違った場所を見出しとして認識させることができます。
正規表現を学ぶいいきっかけにもなると思いますので、自分の思う見出しを設定してみて下さい!