上級Vimmerすごい
今日また、vim-jpに質問を投げて返してもらったので、そのlog
こんなのがしたくて、質問を投げた
let n = 1 for n < 10 s/"arg".n/b:000[n]/ endfor
たとえば、arg1にhoge,arg2にpiyoなどを置換したい。
帰ってきた答えが、 exucuteしたらどう?など。前にexcuteの説明読んだんだけどわかんなかったなーしてたら、mattnさんからコードが飛んできた。
silent! %s/arg\([0-9]\+\)/\=get(a:000, submatch(1)-1, '')/g
正直焦りましたね。動きますけど、挙動がわかんない。
vimscriptテクニックバイブル本を見てみると
getは第一引数のリストを第二引数をkeyとして返す。submatch()関数は、\()\で一致したものを返す。 %はバッファの上から順にs/をかけてくれる。
ってな感じで、感謝しつつ、上級vimmerすげーしてた。