スニペットツール aText で Markdown の入力をラクにする

こちらの記事 でAutohotkey V2.0を使った方法を書いたが、 aTextという素敵なアプリを使ったほうが良さそうだったのでここに記載する。

たとえば mk と入力すると、以下のようなスニペット対象候補が表示され、つづけて 3333 を入力して TAB を押すと、#### に変換される。

なおIME起動中でも mk と入力した時点で候補が表示される。IMEのUIと被ってしまうが同じように動作する。 候補の表示位置は設定で変えられる(カーソル付近/ウィンドウ中央/スクリーン中央、のどれか。カーソル付近でオフセット指定できると良いができない)。

ちなみに mk と入力しているのに「みん」と表示されているのはAZIK方式のかな変換を使っているから。こちら参照。

aText の設定

上記のような動作をさせるために以下のような設定をしている。

Preference の設定

タスクトレイアイコンを右クリックして Preference を選択し Snippet menu にて

  1. Suggest abbreviations while typing を ON にして、Minimum length characters を 2 に設定する
    これで mk と入力した時点で候補を表示してくれる。
  2. Press these keys to accept the selected item in snippet menu にて TAB を設定する
    確定キーを何にするか、という設定。もちろん改行などその他のキーも設定可能。

Group の作成

タスクトレイアイコンを右クリックして Main Window を選択し、Examples & Guide (デフォルトで設定されている使用例)のあたりで右クリックし New Group を選択し Name を適当に設定(ここではmarkdownとした)し

  1. Expand abbreviation(略語展開タイミング) を After typing abbreviation and confirmation にする
    一番安全な(≒意図しないときに展開しない)方法だと思う。なお confirmation でOKとするキーは Preference で設定した TAB となる
  2. Position of abbreviation(?) を After delemiter にし、delemiter を ENTERSPACE だけにする
    略語の展開が有効になるタイミングを設定していると思われる。
    このように設定すると、改行かスペースのあとでのみスニペットの候補がでてくるようになる。
    これも候補が頻繁にでると鬱陶しいと思ったので改行/スペースに絞った。

なお Snippet abbreviation prefix (図の②の下の項目) を有効にしてなにか文字を指定すると、その文字が入力された時点でグループ内のすべての候補が出てくる。便利そうだが私の用途では使えなかった。後述する。

Snippet Item の作成

最後にスニペット項目の設定。新規作成したグループを右クリックして New Snippet を選択。 プレインテキストだけでなくいろいろ登録できる模様。下図のように、キーストロークも登録できるようだがプレミアム(課金)限定の機能のようだ。私はまだ試用期間扱いで使えているだけのようだ。

Snippet abbreviation prefix について

これを例えば mk と設定すると、スニペット候補を表示する最短文字列長(Preference で設定したやつ)の値にかかわらず mk と打った時点でそのグループ配下の候補が表示される。
すばらしいのだが mk を prefix にしたから残りは 3333 だな、とスニペットの略語を 3333 に設定すると、3333 とだけ打って TAB を打つと 候補すら表示されず即展開されてしまう。 これだと意図しない展開が発生しやすくなるためこの機能は使わずに Snippet Item 側に prefix となる文字列含めてすべて入力した。つまり 3333 ではなく mk3333 とした。
Group prefix を必ず入力しないと展開しない、という設定項目があるとうれしかった。

こちら で書いているのだがターミナルアプリにて改行を含む文字列が意図せず展開されてしまうのが怖いため、このあたりは安全になる、つまり意図しないときに展開しない設定にたおしている。

参考

ohina.work

aText について説明をしてくれている数少ない日本語のページ。ありがたい。