10

私は特別な方法でコードにコメントするためのプラグインを書いていますが、ビジュアルモードまたは通常モードで呼び出された場合は少し異なる動作をするはずです。

関数が呼び出されたときにユーザーがいた(だった)モードを判別する関数または何らかの方法はありますか?

4

1 に答える 1

7

あります

mode([expr])現在のモードを示す文字列を返します。

http://vimdoc.sourceforge.net/htmldoc/eval.html#mode%28%29

ただし、マッピングのrhsでコマンドモードを開始する可能性があるため、これは機能しない可能性があります。

より堅牢な方法は、次のようなわずかに異なるマッピングを設定することです。

nmap <Leader>c :call MyFunc('n')<CR>
vmap <Leader>c :call MyFunc('v')<CR>

引数値を使用して、ユーザーがどのモードにあったかを確認します。

于 2012-05-30T21:46:20.123 に答える