pastetoggle と typebuf
ck で Cygwin の vim を使うとき、インサートモードで pastetoggle が効かないという現象にずっと前から悩まされていた。
という不思議な現象だったが、原因は .vimrc に書いてあるこれだった:
inoremap <silent> <Esc> <Esc>:set iminsert=0<CR>
本来なら、
F10=Esc [ 2 1 ~である。
inoremap A A<Esc>:echo hoge<CR>B
のとき A を押すと、先にマッピングが展開・実行されて { A : B } というシーケンスが pastetoggle チェックに渡されるらしい。実際に ":echo hoge"とタイプしたときも、":" のみが typebuf.tb_buf に格納される。
vgetorpeek() は後でもっとよく見てみよう。