最近、_<Plug>
_という名前のvimプラグインを見つけました。たとえば、実行したいコマンド_<Plug>abc_def
_があります。
私は_:<Plug>abc_def
_などのすべてを試しました。何もうまくいきませんでした。また、_:help <Plug>
_は情報を提供しませんでした。
ただし、マッピング:map x <Plug>(unite_redraw)
を作成することで実行できました。次に、x
を押して実行できます。
今、それを実行するためだけにダミーマッピングを作成せずに_:<Plug>abc_def
_を実行する方法はありますか?私が使用する実際のプラグインはUniteです。
<Plug>
マッピングはmeantであり、マップを介してマップされ、呼び出されます。 <Plug>
マップは、プラグインアクションのクリーンなインターフェースをユーザーに公開するためのデバイスです。
例:プラグインのハードコードで、あるキーをあるプラグイン関数にマッピングする代わりに、「map zz
to the action 'center美的にカーソル '"、
nnoremap <expr> zz 'zz'.float2nr(winheight(0)*0.1).'<C-E>'
名前付きの<Plug>
マッピングのみを公開し、ユーザーが「アクション」をコピーして貼り付けることなく、ユーザーが再マッピングできるようにすることをお勧めします。
nnoremap <expr> <Plug>NiceCenterCursor 'zz'.float2nr(winheight(0)*0.1).'<C-E>'
nmap zz <Plug>NiceCenterCursor
これにより、ユーザーによるオーバーライド、再利用、プラグインが簡単になります。
<Plug>
マッピングは、それらが定義されているモードでのみアクティブです。通常モード用に定義されている<Plug>
マッピングを実行するには、通常のコマンドと同じように実行できます::normal
を使用します(感嘆符なし)。
:execute "normal \<Plug>NiceCenterCursor"
<Plug>
は実際には特別なマジックキーを表すため、:normal
を:execute
と組み合わせて使用し、<Plug>
をエスケープする必要があります。
<Plug>
メカニズムは :h 41.11
で詳しく説明されています。 Vimマスターによるこのトピックに関するこの記事 も参照してください。