私はVim の Mapping keys - Tutorial (Part 1) - 6.2 Insert mode mapsに従っています。そこには次のように書かれています。
The <C-R>= command doesn't create a new undo point.
You can also call Vim functions using the <C-R>= command:
:inoremap <F2> <C-R>=MyVimFunc()<CR>
私はこれを使って次のように呼び出そうとしていますSingleCompile#Compile()
:
map! <F5> <C-R>=SingleCompile#Compile()<CR>
動作していますが、問題は、挿入モードに戻ると0
、副作用として文字が挿入されることです。
これはなぜですか、どうすれば回避できますか?
編集:
<C-R>
元に戻すポイントを作成せず、コマンドを入力する代わりに関数を呼び出す目的があるため、使用して<C-O>
います。元に戻すポイントを作成したくありません。
編集:
Ingo Karkat によって提供された三項演算子のトリックに基づいて、VIM wiki を更新しました。