snippetsEmu.vim の簡単な使い方
snippet_emu.txt を読んだので自分用の備忘録
人様が見る事を考えてないです。ごめんなさい。
基本の前に・・・
snippetsEmu.vim をロードすると、編集モードの時に
適当にファイルを開いて、<{}> を入力して、遠くは離れた行まで移動して、コマンドモードで、i
基本 Snippet でトリガーを登録する
:Snippet hoge HOGE <{}> HOGE
編集モードから hoge
:Iabbr hoge HOGE <{}> HOGE
でもいける。
タグ名を付けると、同名のタグを置換してくれる
:Snippet hoge HOGE <{fuga}> HOGE <{fuga}>
編集モードから hoge
ここで、aaa とか入力して
一つ目の fuga が選択された状態で、何も入力せずに
タグを引数に関数を実行する
:Snippet hoge Hoge <{fuga}> Hoge. HOGE <{fuga:substitute(@z,'.','\u&','g')}>! HOGE
一つ目の fuga で入力した内容が、@z レジスタに入るので、@z を substitute の第一引数として渡す。
mmmmm とか入力すると、Hoge mmmmm Hoge. HOGE MMMMM HOGE となる。
下記でも動く。
:Snippet hoge HOGE <{fuga:substitute(@z,'.','\u&','g')}>! HOGE
ユーザ定義関数で <{}> を返すと・・・
function! Count(haystack, needle) let counter = 0 let index = match(a:haystack, a:needle) while index > -1 let counter = counter + 1 let index = match(a:haystack, a:needle, index+1) endwhile return counter endfunction function! PyArgList(count) if a:count == 0 return "(,)" else return '('.repeat('<{}>, ', a:count).')' endif endfunction Snippet pf print "<{s}>" % <{s:PyArgList(Count(@z, '%[^%]'))}><CR><{}>
面倒なので、詳しい説明は書かないが % の数を数えて個数分 <{}> を出力してくれる。
xxxx.py とか開いて pf