Emacs の Org-mode でyasnippetをインストールしておくと、 "
・・・どこで設定されているのだろうか?
インストール時に作った .emacs.d/plugins の中か?
中身は?
<s <tab>
" と入力すると "#+begin_example
" と展開されるが、設定ファイルはどうなっているのだろう?・・・どこで設定されているのだろうか?
インストール時に作った .emacs.d/plugins の中か?
$ ls -F cc-mode/ erlang-mode/ markdown-mode/ rst-mode/ sql-mode/ css-mode/ f90-mode/ nxml-mode/ ruby-mode/ time emacs-lisp-mode/ html-mode/ perl-mode/ scala-mode/ email latex-mode/ python-mode/ snippet-mode/org-mode はない・・・。perl-mode がある・・・。
中身は?
$ ls -F perl-mode cperl-mode/ for if ifee unless xfore xunless eval fore ife sub while xif xwhile
実行してみる
if
の場合
if ファイルの中身は、
#name : if (...) { ... } # -- if ($1) { $0 }Emacs の perl-mode で
if<tab>を入力すると、
if () {
}
が展開されて()の中にカーソルがくる。
()の中に条件を書いて、<tab> を打つと{}の中にカーソルが移動する(上の設定ファイル中の '$0' の位置)。
便利。
fore
の場合
fore<tab>
を入力すると、
foreach my $x (@array) { # body... }が展開されて、"x" の上にカーソルがくる。ここで、
- そのまま変数名を打ち込むと x がその変数名に置き換わる。
- <tab> を打つとカーソルは 'array' のところにくる。そのまま配列名を打ち込むと array がその配列名に置き換わる。
- ここで <tab> を打つと今度はカーソルは '# body…' のところにくる。処理を書いて <tab> を打つと{}の外にカーソルが移動する。
fore
の設定の中身は、
#name : foreach ... { ... } # -- foreach my \$${1:x} (@${2:array}) { ${3:# body...} }
for
の場合
for
の場合は、
for<tab>を入力すると、
for (my $var = 0; $var < expression; $var++) { # body... }が展開されて、最初の
var
の上にカーソルがくる。この変数を書き換えると、残りの "var
" も同時に書き換わる。
すごい。for
の中身は、
#name : for (...) { ... } # -- for (my \$${1:var} = 0; \$$1 < ${2:expression}; \$$1++) { ${3:# body...} }
構文
タブストップと呼ばれる。
tab と s-tab で行ったり来たり出来る領域。(うちでは s-tab は効かなかった。ので戻れない。)
2. {1:var}
の "var
" や {2:expression}
の "expression
" 。
プレースホルダーと呼ばれる。タブストップのデフォルト値。
ユーザーが何か入力するとその文字に置き換わる。
3. ミラー
同じ番号のタブストップが幾つかあった場合、プレースホルダーを書き換えると、同じ番号のタブストップにも反映される。
設定が面倒かと思ってこれまで yasnippet はインストールしていなかったが、何も設定しなくてもインストールするだけでたくさんのスニペットが使えるようになっている。 もっと早くインストールすべきだった。
で、"
参考:テンプレートの構文
設定が面倒かと思ってこれまで yasnippet はインストールしていなかったが、何も設定しなくてもインストールするだけでたくさんのスニペットが使えるようになっている。 もっと早くインストールすべきだった。
で、"
<s
" の設定はどこにあるのでしょう?
参考:テンプレートの構文
0 件のコメント:
コメントを投稿