Vimはコマンド発行後の遅延を減らす

Vimはコマンド発行後の遅延を減らす

.vimrcよく使用するアプリケーションを開いたり切り替えたりするためのマッピングが私の中に存在します。

使用例: 10 個のアプリケーションを開いていて、MacVim を使用しています。Chromeアプリに到達するためにを数回実行するよりも、<Leader>scにマップされている を実行する方が高速です。map <Leader>sc :silent !open /Applications/Google\ Chrome.app<CR>Command+Tab

<Leader>scただし、vim では、発行してからアクションが実行されるまでに遅延が発生します。

このマッピングのためだけにこの遅延を減らすにはどうすればよいですか?open /Applications/Google\ Chrome.appこれをコマンドラインから 実行するのと同じくらい瞬時に実行したいのですが、vim ではそのコマンドを実行する前にわずかな遅延が発生します。

編集: 設定があることに気付きましたtimeoutlenが、それはグローバルです。これらのマッピングにのみ同様のものが欲しいです。

答え1

これはおそらく、 で始まる別のマッピングがあり<Leader>sc、Vim は短いマッピングを入力しているだけなのか、それとも他の長いマッピングを入力するつもりなのかを確認するのを待っているためです。

この問題を回避する唯一の方法は、マッピングの 1 つを変更して、Vim が曖昧さがないことを認識できるようにし、コマンドを即座に実行できるようにすることです。

:map <leader>sc」と入力して Enter キーを押すと、そのシーケンスで始まるすべてのマッピングが表示されます。

答え2

Vim では特定のコマンド/マッピングを調整することはできませんtimeoutlen。特定のバッファ/ウィンドウ/タブに対してはおそらく調整できますが、その特定のコンテキストではどのコマンド/マッピングでも同じ値になります。

しかし、ここでの使用によって遅延が発生していると思いますopen

なぜ Quicksilver を使わないのですか? 私はこれを何年も使っています。これは、どのようなコンテキストでも同じメカニズムを提供します。Vim、iTunes、Outlook、または Preview のいずれの場合でも、まったく同じキー シーケンスを入力して Chrome に切り替えることができます。この普遍性だけでも、私にとっては必須です。それと の速度も重要です<C-Space>c<CR>

あなたのシステムでは、理論的には Vim > Chrome を実行すると時間を節約できますが、Chrome > Vim を実行するにはどうすればよいでしょうか。私の知る限り、<leader>svChrome では使用できないため、別のメカニズムに頼る必要があります。つまり、少なくとも 2 つのシステムをセットアップして維持するか、少なくともカスタムの非常に効果的なシステムとデフォルトのあまり効果的でないシステムを設定する必要があります。

関連情報