由於其 Alt+ 行為,ESC 鍵會導致終端出現小延遲
我的終端設置是帶有 vi 綁定的 gnome-terminal + tmux + zsh。
在 vim 之類的應用程序中,甚至在 zsh 的命令行 vi 編輯模式中,我需要頻繁地敲擊該
ESC
鍵,但在該鍵的效果發生之前會有一小段延遲。參見GNU Screen 使 Vim ESC 鍵變慢經過一些實驗,我發現
ESC
按下 key 並立即按下另一個鍵(比如b
)與敲擊 具有相同的效果Alt+b
。我不知道為什麼會這樣(可能是由於遺留原因而沒有Alt
?我不知道)。無論哪種方式,我都有兩個Alt
鍵,我不希望我的ESC
鍵出現這種行為。我已經嘗試過C+[
,它也有同樣的問題。我不確定誰對此負責,gnome-terminal 或 tmux 或我的作業系統本身(Ubuntu Natty)。關於如何解決這個問題的任何想法都會很棒。
更新:我在另一個終端(LXTerminal)上檢查了沒有 tmux 的情況,並且那裡也存在延遲。
這是一個實際的修復。將以下內容添加到
.tmux.conf
:set -s escape-time 0
如評論中所述:伺服器可能需要重新啟動。
tmux kill-server
殺死伺服器;您可能需要重新啟動它。tmux
或者,您可以通過鍵入您的 tmux 前綴(預設Ctrl
+B
),然後**:
** 輸入.從命令提示符重新載入配置文件source-file ~/.tmux.conf
。
延遲是由可能必須決定是否按下功能鍵的輸入常式引起的。為此,輸入常式在讀取 ESC 字元時啟動計時器。在計時器用完之前從輸入中讀取的字元(比如說十分之一秒)然後被解釋為功能鍵的 ESC 序列,並且這個 ESC 序列將與來自 terminfo 或termcap 數據庫(取決於使用的低級常式)。
當然,這對於單獨使用 ESC 的應用程序來說很煩人,但我不知道有任何解決方法。
關於您對
ESC a
=行為的問題Meta a
:並非所有鍵盤都提供元鍵。作為一種解決方法,通常允許在按下另一個鍵之前使用 ESC 鍵。