cafegale(LeafCage備忘録)

LeafCage備忘録(はてなダイアリー)と統一しました。

いったんkeymappingでを定義することで feedkeys() の副作用を最小にする

incsearch.vimに限らずだったんですが,どうしてもfeedkeys()を使わないと実装できないからfeedkeys()を使うんだけど特定の条件のときにインサートモードやコマンドラインモード時にfeedkeys()の処理が実行されて意図しない文字列がインサートされちゃう問題の解決法がわかりました!

noremap (_incsearch-nohlsearch)
noremap! (_incsearch-nohlsearch)
nnoremap (_incsearch-nohlsearch) :nohlsearch
xnoremap (_incsearch-nohlsearch) :nohlsearchgv

call feedkeys("\(_incsearch-nohlsearch)", "m")

というふうに,一旦マッピングして意図してないモードはにマップすれば変な文字列が絶対に挿入されないようになってハッピー

http://lingr.com/room/vim/archives/2015/06/03#message-21962265