tmuxのプレフィックスキーとコマンドキーの間のタイムアウトを下げる方法は?


45

私の~/.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 Teminatorと同じにするため)

状況:ウィンドウを水平に2つのペインに分割し、Ctrl+ a Up矢印のあるペインに切り替えた後、このペインでシェル履歴コマンドを表示するにはしばらく(2〜3秒)待つ必要があります。Upもう一度押すと、シェル履歴コマンドを表示するのではなく、他のペインに戻ります。どうすればこれを拒否できますか?


潜在的に有用な代替手段は、CTRL + B qを使用することです。これにより、tmuxのウィンドウ番号が表示されます。CTRL + B q <number>を押すと、そのウィンドウに移動し、すぐに上下に移動できます。qに続く番号を非常にすばやく入力する必要があります。これを制御するタイムアウトもあります。
スペイセンジャセット16

回答:


53

Up、Down、Left、およびRight(select-paneバインディング、およびの同じキーのControlおよびMeta- resize-pane)は、デフォルトで「繰り返し可能」なバインディングです(経由で作成bind-key -r)。プレフィックスキーと単一の繰り返し可能なキーを入力した後、repeat-timeセッションオプションで指定されたミリ秒数内で(プレフィックスを再度入力せずに)他の繰り返し可能なキーを入力できます(デフォルトは500 ミリ秒)。

repeat-time次のシェルコマンドを使用して、現在の値を調べることができます。

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

現在のセッションの繰り返しを無効にする場合は、プレフィックスとコロンを入力して、次のコマンドを入力します。

set-option repeat-time 0

または、快適な非ゼロ値を見つけることができる場合があります。本当に2000(つまり2秒)程度の値がある場合は、に設定されていると思い/etc/tmux.confます。

すべてのセッションの繰り返しを無効にする(またはタイムアウトを変更する)場合は、次のコマンドでグローバル値を設定します。

set-option -g repeat-time 0

セッションごとの値を設定している場合は、そのセッションでグローバル値を有効にする前に設定を解除する必要があります(set-option -u repeat-time)。.tmux.conf「永続的に」オフのままにする場合は、グローバル値を経由で設定できます。

Upにのみ問題がある場合は、次のようにせずに再バインドできます-r

bind-key Up select-pane -U

4

必要に応じて、特定のキーバインドの繰り返しをオフにすることもできます。たとえば、ペインを切り替えるデフォルトのバインディングは次のように要約されます。

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

個人的には、ペインの切り替えを繰り返し不可能にしたいです。ウィンドウが多数の小さなペインに分割されている場合、繰り返しは素晴らしいですが、それらのペイン内で実行されているアプリケーション(シェル履歴、vimなど)とのキー衝突(説明したように)につながる可能性があり、とにかく、通常、ウィンドウごとに2つ以下のペインがあります。しかし、それぞれに彼自身。

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