うめすこんぶ

日々のプログラミングで残しておきたいメモ.何かの役に立てれば幸いです.

yasnipet.elでのスニペットの書き方tips7つ

スポンサーリンク

前回,yasnipet.elのダウンロードとインストール方法を紹介しました. 今回は,スニペット基本的な書き方を解説します.elispとかはあまり詳しくないので,自分が使えるものだけ…ですが.

目次

  1. $0
  2. $1
  3. ${1:name} (プレースホルダ)
  4. ミラー
  5. ${1:$(capitalize yas/text)}
  6. ${1:mydefine$(upcase yas/text)}
  7. エスケープ文字

$0

$0はスニペット展開後,最終的にカーソルの来る位置です.例えば,

function() {
  $0
}

のように書くと,すぐに関数の中身を書き始めることが出来ますね.

$1

$1や$2はスニペットの書き換え可能な部分です. スニペット展開後の流れを書きます. 1. $1にカーソル移動 2. $1の部分に文字を書きます(この時文字がハイライトされる) 3. TABキーを押すと,$2にカーソルが移動 と,この様に$(数字)の部分をどんどん書き換えることが出来ます. 例:

function ${1} (${2}) {
  $0
}

この例では,$1に関数名,$2に引数名を入れることができるのですね~

また,$2のあとは$0の位置に移動します.$0がない場合は$2の位置にとどまります.

${1:name} (プレースホルダ)

$1などに初期値を設定することもできます.${1:name}とかけば,"name"がその位置の初期値になります. また,特に初期値がいらないという時でも,あったほうが何をその位置に書けばいいかわかるので,なるべく書いたほうがいいでしょう.

ミラー

$1を複数箇所に書くと,同じ番号なら同じ文字が入ります.これをミラーといいます.

${1:$(capitalize yas/text)}

文字の頭文字を大文字にします.javaのset○○などセッターやゲッターに活用します.

void $1 set${2:$(capitalize yas/text)}($1 $3) {
    $2 = $3;
}
$0

${1:mydefine$(upcase yas/text)}

文字をすべて大文字にします.定数の宣言とかで使えそうですね.

エスケープ文字

文字「」はそのままスニペットとして書くとうまく展開されません.そんな時は,「\」と書くと うまく行きました.

例:(markdown-modeでのインラインコード)

\`${1:Code}\` $0