@Satoh_D no blog

大分にUターンしたので記念に。調べたこととか作ったこととか食べたこととか

今更だけどSublime Textのスニペットの作り方を書いたよ!

この記事はSublime Text Advent Calendar 2014の12日目の記事です。
ノリで登録したAdventカレンダーなのですが、周りを見ると有名な方々ばかりで恐縮するばかりです...ですが頑張って書いていきますね。

今日はスニペットの作成方法についてメモします。
Package使ってばっかりでスニペットとか使ったことなく、良い機会なので調べてみました。

ひな形を編集して保存するだけ!

スニペットの作り方はとても簡単です。
ざっくり言うとひな形作成→編集→保存だけです。

メニューの [Tools]->[New Snippet]を選択すると下記の様なひな形が出力されます。

<snippet>
  <content><![CDATA[
Hello, ${1:this} is a ${2:snippet}.
]]></content>
  <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
  <!-- <tabTrigger>hello</tabTrigger> -->
  <!-- Optional: Set a scope to limit where the snippet will trigger -->
  <!-- <scope>source.python</scope> -->
</snippet>

このsnippet要素内のcontent要素、tabTrigger要素、scope要素を編集します。
それぞれの何を書くかは次のとおりです。

content要素

ここに書かれたものがスニペットとして表示されます。
スニペットの内容は <![CDATA[ ]]> の中に書かなければいけません。

スニペット内では${1:this}のように変数を使用することもできます。
スニペットの展開時、この部分にカーソルが移動します。因みにnは編集順を表します。
スニペット内で同一の変数がある場合、展開時に同時に編集をすることが出来ます。

content要素内では「$」は変数として認識されてしまい表示されません。 「$」を表示させたい場合は「¥$」のようにエスケープする必要があります。

スニペットの内部ではタブインデントが含まれます。
「translate_tabs_to_spaces」オプションがtrueになっている場合はタブは半角スペースに変更されます。

tabTrigger要素

スニペットを展開させるキーワードとなります。
ここに書かれた単語を入力してTabを押すとスニペットが展開されます。

scope要素

スニペットが適用されるモードを指定します。
「source.python」はPythonの書式の時に展開できます。
この要素をコメントアウトするとどの書式のファイルでもスニペットを展開することが出来ます。

description要素

上記の例では表示されませんが、description要素も書くことが出来ます。
これはスニペットの説明を書く要素で、表示されたりすることはありません。

保存してスニペット完成

編集が終わったら保存します。
この時、ファイル名は「スニペット名.sublime-snippet」とし、Packages/Userディレクトリの中に保存しなければいけません。
これでスニペットが完成です。
入力が面倒なコードは積極的にスニペット化し、コーディングをドンドン楽にしていきましょう!

これでスニペットの作り方は終わりです。
次は@littlebustersさんです。よろしくお願いします!