2017-03-09 3 views
1

nmapimapなどの方法を知っていて、vimのすべてのキーマッピングを表示し、特定のキーにバインドされているアクションをリストする方法結合。しかし、時には、特定のプラグインのすべてのキーバインドをすばやく見たい場合は、これを行う簡単な方法はありますか?私は、すべてのキーバインドをリストし、それらをページごとに検索したくありません。VIM:指定されたプラグインの現在のバッファにあるすべてのキーマッピングを一覧表示する方法

事前に感謝します。ここで

+1

':ヘルプpluginname' – romainl

+0

しかし、デフォルトをconfigはファイルタイプ、カスタマイズなどによって変更できます。 – shizhz

答えて

3

は別のウィンドウで特定のプラグインのマッピングを取得するコマンドである:最初の行で

:let pluginName=".vimrc" | let cmdMap="map" 
:redir => output | silent execute "verbose ".cmdMap | redir END | new | put=output | execute 'v/^.*\n.*'.escape(pluginName,'./').'/d' 
  1. 、任意のマップコマンドで任意のスクリプト名とcmdMapで変数pluginNameを変更します。 (入力)2行目

  2. 、出力を解析するコマンドを実行する。(結果


あなたはまだそれらのコマンドをマッピングしたり、ユーザからの入力を取得する関数を作成することができます。

編集:

他のマッピングコマンドの使用を拡大する(map!のように)、レジスタ名を使用して、より信頼性の高い次のようになります。

:redir @z | silent execute "verbose ".cmdMap | redir END | new | put z | execute 'v/^.*\n.*'.escape(pluginName,'./').'/d' 
+1

'map!'をチェックする必要があります。また、 'map'はインサートモードとコマンドモードのマッピングを返しません。 –

+1

新しいvimでは ':redir'の代わりに' execute() 'と':filter'を使うことができます。例えば'コマンド! (モード=〜 '^。$'?mode.'map ':モード))}、[パラメータ]、[ ] + ['nmap'])|新しい| setlocal buftype = nofile bufhidden =ワイプnoswapfile |サイレント! exe 'pu = map' |サイレント! keeppat v /./ d_ | 1 |サイレント! unlet map'、経由で実行: 'マップunimpaired n' –

関連する問題