Як відключити тайм-аут між префіксом і командним ключем у 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 <число>, ви перейдете до цього вікна, вгору / вниз буде доступно негайно. Ви повинні ввести число, що відповідає q досить швидко. Існує і тайм-аут, який контролює це.
Spacen Jasset

Відповіді:


53

Вгору, вниз, вліво і вправо ( select-paneприв’язки; Контрольні та Мета- одні й ті ж клавіші для 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 (тобто 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

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 панелей на вікно в будь-якому випадку. Але у кожного своє.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.