nmap
、imap
などの方法を知っていて、vimのすべてのキーマッピングを表示し、特定のキーにバインドされているアクションをリストする方法結合。しかし、時には、特定のプラグインのすべてのキーバインドをすばやく見たい場合は、これを行う簡単な方法はありますか?私は、すべてのキーバインドをリストし、それらをページごとに検索したくありません。VIM:指定されたプラグインの現在のバッファにあるすべてのキーマッピングを一覧表示する方法
事前に感謝します。ここで
nmap
、imap
などの方法を知っていて、vimのすべてのキーマッピングを表示し、特定のキーにバインドされているアクションをリストする方法結合。しかし、時には、特定のプラグインのすべてのキーバインドをすばやく見たい場合は、これを行う簡単な方法はありますか?私は、すべてのキーバインドをリストし、それらをページごとに検索したくありません。VIM:指定されたプラグインの現在のバッファにあるすべてのキーマッピングを一覧表示する方法
事前に感謝します。ここで
は別のウィンドウで特定のプラグインのマッピングを取得するコマンドである:最初の行で
:let pluginName=".vimrc" | let cmdMap="map"
:redir => output | silent execute "verbose ".cmdMap | redir END | new | put=output | execute 'v/^.*\n.*'.escape(pluginName,'./').'/d'
、任意のマップコマンドで任意のスクリプト名とcmdMap
で変数pluginName
を変更します。 (入力)2行目
、出力を解析するコマンドを実行する。(結果)
あなたはまだそれらのコマンドをマッピングしたり、ユーザからの入力を取得する関数を作成することができます。
編集:
他のマッピングコマンドの使用を拡大する(map!
のように)、レジスタ名を使用して、より信頼性の高い次のようになります。
:redir @z | silent execute "verbose ".cmdMap | redir END | new | put z | execute 'v/^.*\n.*'.escape(pluginName,'./').'/d'
'map!'をチェックする必要があります。また、 'map'はインサートモードとコマンドモードのマッピングを返しません。 –
新しいvimでは ':redir'の代わりに' execute() 'と':filter'を使うことができます。例えば'コマンド! (モード=〜 '^。$'?mode.'map ':モード))}、[パラメータ]、[
':ヘルプpluginname' – romainl
しかし、デフォルトをconfigはファイルタイプ、カスタマイズなどによって変更できます。 – shizhz