こちらの記事 でAutohotkey V2.0を使った方法を書いたが、 aTextという素敵なアプリを使ったほうが良さそうだったのでここに記載する。
たとえば mk と入力すると、以下のようなスニペット対象候補が表示され、つづけて 3333 を入力して TAB を押すと、#### に変換される。

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

ちなみに mk と入力しているのに「みん」と表示されているのはAZIK方式のかな変換を使っているから。こちら参照。
aText の設定
上記のような動作をさせるために以下のような設定をしている。
Preference の設定
タスクトレイアイコンを右クリックして Preference を選択し Snippet menu にて
- Suggest abbreviations while typing を ON にして、Minimum length characters を
2に設定する
これでmkと入力した時点で候補を表示してくれる。 - Press these keys to accept the selected item in snippet menu にて
TABを設定する
確定キーを何にするか、という設定。もちろん改行などその他のキーも設定可能。

Group の作成
タスクトレイアイコンを右クリックして Main Window を選択し、Examples & Guide (デフォルトで設定されている使用例)のあたりで右クリックし New Group を選択し Name を適当に設定(ここではmarkdownとした)し
- Expand abbreviation(略語展開タイミング) を After typing abbreviation and confirmation にする
一番安全な(≒意図しないときに展開しない)方法だと思う。なお confirmation でOKとするキーは Preference で設定したTABとなる - Position of abbreviation(?) を After delemiter にし、delemiter を
ENTERとSPACEだけにする
略語の展開が有効になるタイミングを設定していると思われる。
このように設定すると、改行かスペースのあとでのみスニペットの候補がでてくるようになる。
これも候補が頻繁にでると鬱陶しいと思ったので改行/スペースに絞った。

なお 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 を必ず入力しないと展開しない、という設定項目があるとうれしかった。
こちら で書いているのだがターミナルアプリにて改行を含む文字列が意図せず展開されてしまうのが怖いため、このあたりは安全になる、つまり意図しないときに展開しない設定にたおしている。
参考
aText について説明をしてくれている数少ない日本語のページ。ありがたい。