Vim 減少下達命令後的延遲

Vim 減少下達命令後的延遲

我內部有.vimrc用於打開或切換到常用應用程式的映射。

用例:我有 10 個打開的應用程序,並且我在 MacVim 中。<Leader>sc發出映射到 的命令map <Leader>sc :silent !open /Applications/Google\ Chrome.app<CR>Command+Tab多次訪問 Chrome 應用程式要快。

但是,從我發出命令<Leader>sc到執行操作,vim 有一個延遲。

如何減少此映射的延遲? 我希望這與從open /Applications/Google\ Chrome.app命令列運行一樣即時,但是 vim 在執行該命令之前會產生輕微的延遲。

編輯:我注意到有一個timeoutlen設置,但它是全局的。我想要類似的東西來用於這些映射。

答案1

這很可能是因為您有另一個以 開頭的映射<Leader>sc,Vim 正在等待查看您是否只是鍵入較短的映射,或者打算鍵入另一個較長的映射。

解決這個問題的唯一方法是更改​​其中一個映射,這樣 Vim 就知道沒有歧義,這應該會導致它立即運行該命令。

輸入“ :map <leader>sc”並按 Enter 鍵應該會顯示以該序列開頭的所有映射。

答案2

您無法timeoutlen在 Vim 中調整特定命令/映射。您可能可以對特定的緩衝區/視窗/選項卡執行此操作,但對於該特定上下文中的任何命令/映射來說,它仍然是相同的值。

但我認為延遲是由於使用openhere造成的。

為什麼不用快銀呢?我已經使用它很多年了:無論我處於什麼環境,它都提供相同的機制。僅憑它的普遍性就使其成為我的必備品。那和速度<C-Space>c<CR>

在你的系統中,理論上你可以在執行 Vim > Chrome 時節省時間,但是如何執行 Chrome > Vim 呢? AFAIK 你不能<leader>sv在 Chrome 中使用,所以你必須求助於另一種機制。這至少需要設定和維護兩個系統,或至少一個自訂的非常有效的系統和一個預設的不太有效的系統。

相關內容