Atomでスニペットが起動しない時の対処法

Atom

スニペットが起動しないケース

Atomのスニペットは登録したprefixを認識して、起動します。prefixを途中まで打ち込んだ段階から候補をサジェストしてくれます。例えば、下のようなスニペットを登録したとします。

1
2
3
4
'.text.md':
  'image':
    'prefix': 'image'
    'body': '![${1:TEXT}](<%= article_image_path( "${2:FILENAME}" ) %>)'

prefixはimageなので、下のようにiと打ち込んだだけで、候補として表示されます。

iと打ち込んだ画像

ここで下のようにimaまで打ち込んだところで、tabキーかenterキーで確定するとします。通常はこれでスニペットが入力されるはずです。

imaと打ち込んだ画像

ところが、登録したスニペットが登場するのではなく、下のようにimageという文字列が入力されてしまいました。

確定した画像

これはどういうことでしょうか?

直前の1字がスペースか改行でなければ発火しない

いろいろ試した結果、どうやら入力するprefixの直前の1文字が、スペースか改行でないと起動しないようです。上記の例ではimaの直前の文字が(読点)です。

単語間に必ずスペースが入る英語ではおそらくあまり発生しない問題なのでしょうが、日本語は特にスペースはないので、よくこのような事態が発生します。

ショートカットキーによる起動で対処

このように直前にスペースがない状態で発火させたい時はoption+shift+sを押します。(Macの場合)

確定した画像

すると画像のようにモーダルが表示されます。そのテキストボックスにprefixを入力して候補で出たimageが選択された状態でenterを押せばスニペットがきちんと展開されます。

羊毛や小麦