Vimperatorのキーバインド、追加のキープレスが必要


0

私は本当にVim / Vimscriptに不慣れです、そして私が実行したときと同じように実行するように私の.vimperatorrcを設定しようとしています :open google search-term

読んでから、それは私が必要としているように見えます nnoremap g :open google<Space>。ほとんど動作しますが、別のキーを押すまでウィンドウは表示されません。

他にやるべきことはありますか。明確にするために、私は基本的にこれと同じことをしたいのですが、検索ウィンドウを開くために追加のキーを押す必要はありません。

回答:


1

あなたがマッピングを使用しようとしていて、物事がコマンドラインに現れる前にためらいがあるとき、それはVimperatorがあなたがこれまでに押したものを超えたより多くのオプションを持っていることを示すことができます。 A)より多くの文字を持つ(残りのあいまいさが存在しない)マッピングに一致するか、B)他のものに一致しないため一致する短いマッピングを使用してあいまいさが解決されるかどうかを確認します。最初にリーダーキーを使用した例を使用して説明した後、具体的な質問に戻ります。

あなたの中に次のものがあるとしましょう。 .vimperatorrc (そしてあなたのリーダーキーがデフォルトであると仮定して、 \ (見る :h mapleader )):

nnoremap <leader>g :open google<space>

入力が終わったらすぐに \g:open google 期待通りに表示されます。しかし、あなたがこれをあなたの中に持っているとしましょう。 .vimperatorrc

nnoremap <leader>g :open google<space>
nnoremap <leader>gw :open google wiki<space>

今、あなたが入力した後 \g表示されることは何も起こりません(現在のURLの左側をよく見ない限り、入力時にコマンドモードのキーが押されていることが示されています)。これはVimperatorがあなたがそれを望んでいるかどうか不確実だからです \g マッピングするか、またはを押したい場合は w を完了する \gw マッピング。このシナリオでは、次のコマンドを入力できます。 :nmap \g (押さないで <enter> まだ)、そしてあなたはそれら二つのマッピングを見るでしょう。

あなたのシナリオでは、しかし、あなたはキャラクターをマッピングしています g。 Vimperatorには、文字で始まるキーの組み合わせに関連付けられた多くのアクションがあります g。例えば、 gt &amp; gT 「次の/前のタブに移動する」です。 (これらはデフォルトのキーバインドなので、コマンドを入力しても表示されません。 :nmap gデフォルトのすべてをマップ解除することは可能かもしれません g[another character] マッピング、しかしそれは非正統的でおそらく不健康です。デフォルトのキーバインドと衝突しないようにするために、慣例では上に示したようにカスタムマッピングでリーダーキーを使用することをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.