:map
呼び出されたモードを検出できる関数にすることは可能ですか? これは私が持っているものです:
func! s:ShowModeFunction()
echomsg mode(1)
endfunc
noremap <expr> <Plug>ShowMode <SID>ShowModeFunction()
map \m <Plug>ShowMode
マップ\m
は最終的に top 関数を呼び出します。この関数は、通常モード、オペレーター保留モード、またはいずれかのビジュアル モードを示す文字列をエコーします。
<expr>
ただし、これは中央のマップでのみ機能します。コロン コマンドを実行するmode()
と、常に「通常モード」が返されるため、最後の呼び出しが役に立たなくなります。残念ながら、<expr>
厳密には右辺に式が必要であり、関数は何も返さないため、暗黙の戻り値0
が使用され、カーソルが最初の列に移動します。