如何減少 tmux 中前綴鍵和命令鍵之間的逾時?

如何減少 tmux 中前綴鍵和命令鍵之間的逾時?

我的~/.tmux.conf

set -g prefix C-a
unbind C-b
bind C-a send-prefix

bind-key o split-window -v
bind-key e split-window -h

bind-key w kill-pane

(使指令鍵與 GNOME 終結者相同)

狀況:將視窗水平分割成2個窗格後,切換到有Ctrl+a Up箭頭的窗格後,我必須等待一段時間(2-3秒)才能查看該窗格中的shell歷史命令。因為如果我Up再次按下它,它將切換回另一個窗格,而不是向我顯示 shell 歷史命令。我怎麼才能拒絕這個呢?

答案1

預設情況下,向上、向下、向左和向右(select-pane綁定;以及相同鍵的 Control- 和 Meta- resize-pane)是「可重複」綁定(透過 進行bind-key -r)。鍵入前綴鍵和任何單一可重複鍵後,您可以在透過repeat-time會話選項指定的毫秒數(預設值為 500 毫秒)內鍵入任何其他可重複鍵(無需再次鍵入前綴) 。

repeat-time您可以使用以下 shell 指令檢查 的目前值:

tmux show-options -g | grep \^repeat-time     # global
tmux show-options    | grep \^repeat-time     # this session

如果要停用目前會話的重複,請鍵入前綴、冒號,然後輸入以下命令:

set-option repeat-time 0

或者,您也許能夠找到一個舒適的非零值。如果你確實有一個大約 2000(即 2s)的值,​​那麼我猜測它是在/etc/tmux.conf.

如果您想要停用所有會話的重複(或變更逾時),請使用下列命令設定全域值:

set-option -g repeat-time 0

如果您設定了每個會話值,則需要先取消設置,然後全域值才會在該會話中生效 ( set-option -u repeat-time)。.tmux.conf如果您希望「永久」保留全域值,您可能希望透過您的設定全域值。

如果您只遇到 Up 問題,您可以重新綁定它,而無需-r

bind-key Up select-pane -U

答案2

如果需要,您也可以關閉特定鍵綁定的重複。例如,在窗格之間切換的預設綁定可歸結為:

bind-key -r Up    select-pane -U
bind-key -r Down  select-pane -D
bind-key -r Left  select-pane -L
bind-key -r Right select-pane -R

您可以在沒有-r標誌的情況下重新建立這些,例如

bind-key    Up    select-pane -U
bind-key    Down  select-pane -D
bind-key    Left  select-pane -L
bind-key    Right select-pane -R

就我個人而言,我更喜歡窗格切換是不可重複的。如果您將一個視窗分成許多小窗格,那麼重複是很好的,但它可能會導致與這些窗格中執行的應用程式(如shell 歷史記錄、vim 等)發生關鍵衝突(如您所描述的),而且我無論如何,每個視窗通常不超過 2 個窗格。但每一個他自己。

相關內容