質問: ### 前提・実現したいこと vimのモードの判定をしたいです。 ### 発生している問題・エラーメッセージ モードの判定のため、mode関数を使ったのですが、オペレータ待機状態、コマンドライン編集モードの判定ができませんでした。 これらのモードの判定を行うにはどうすればよろしいでしょうか? ### 試したこと vimrcに ``` laststasus=2 statusline=%!mode() ``` と書き、ノーマルモードでcやdのようなオペレータを入力し、ステータスラインになにが表示されるかを確かめました。また、:を入力したときも試しました。 ### 補足情報(言語/FW/ツール等のバージョンなど) ヘルプ mode())
回答: ペンディング状態は取れませんが、最後に実行したオペレータであれば `v:operator` で取得出来ます。(ただし g や z といった修飾は付きません) コマンドラインの編集モードは getcmdtype() で得られますが、ステータス行は「そのバッファが再描画されないと」再描画されないので、コマンドライン編集中にステータス行には反映されません。 ※マップなどを使えば出来なくはないかもしれませんが、期待する物にはならないと思います。