VimScript

emacsにemacslispがあっていくらでも改造できるのに対し,vimには独自のスクリプトがある.vimのためのスクリプトとか覚えるの面倒だなー,とか思っていたのだけど,見てみると非常に素直なデザインになっている.LLのひとつに触れたことがあるなら読めるレベル.lispに触ったことのない俺にとってはこちらのほうがむしろ使いやすそうだ.


で,挙動が変態的であるw,e,bを変えようと思い,いろいろいじってみたわけだ.

色々書いたあとに,w自身をラップすれば簡単じゃね?と気づいて書いてみたわけだが,

" reimplementation of b, e and w
noremap w :echo ToNextHeadOfWord()<cr>

" wrapper of w
function! ToNextHeadOfWord()
		execute "normal w" "現在のwが再帰実行されてしまう!!
		while ! CheckWordOrNot(getpos(".")[1], getpos(".")[2])
				execute "normal w"
		endwhile
		return
endfunction

これだめじゃん.元のwの機能を使いたいのに今のwが呼ばれてしまい無限再起する.どうするか.
使わない場所にwを退避させればできるか.できないね.どうしよう.
結局元のwを自分で書かないといけないのかな.
ああねないと