Отображение размера панели Beter для tmux

Вот пример использования ex :

ex +"%norm 20I " +%p -scq! <(cal)

Замените 20 на необходимое количество пробелов. Использование «% norm 20I» более эффективно, чем повторение множества пробелов с заменой - «% s / ^ / /» .

0
17.08.2018, 10:08
1 ответ

Использование существующих ключей

Возможно, вам вообще не потребуется ничего добавлять в конфигурацию. Вот привязки по умолчанию для изменения размеров панелей (с :list-keys):

.
bind-key -r -T prefix M-Up             resize-pane -U 5
bind-key -r -T prefix M-Down           resize-pane -D 5
bind-key -r -T prefix M-Left           resize-pane -L 5
bind-key -r -T prefix M-Right          resize-pane -R 5
bind-key -r -T prefix C-Up             resize-pane -U
bind-key -r -T prefix C-Down           resize-pane -D
bind-key -r -T prefix C-Left           resize-pane -L
bind-key -r -T prefix C-Right          resize-pane -R

Эта опция -rдля bind-keyозначает, что они поддерживают повтор. --вы можете продолжать нажимать стрелку C -или стрелку M ​​-до тех пор, пока не закончите изменение размера, не вводя последовательность префикса снова. Время до истечения времени ожидания в этом режиме повтора определяется опцией repeat_time(по умолчанию 500 мс ).

Привязка без префикса

Если вы хотите полностью избежать префиксного ключа, вы можете использовать другую таблицу bind. Из раздела привязки -ключа страницы руководства:

By default (without -T), the key is bound in the prefix key table. This table is used for keys pressed after the prefix key (for example, by default 'c' is bound to new-window in the prefix table, so 'C-b c' creates a new window). The root table is used for keys pressed without the prefix key: binding 'c' to new-window in the root table (not recommended) means a plain 'c' will create a new window. -n is an alias for -T root.

Для прямой привязки к корневой таблице:

bind-key -n C-Up resize-pane -U 5
bind-key -n C-Down resize-pane -D 5
bind-key -n C-Left resize-pane -L 5
bind-key -n C-Right resize-pane -R 5

Привязка в режиме копирования

Вы предложили специальный режим для изменения размера. tmuxне поддерживает такие пользовательские режимы, но уже имеет режим копирования(по умолчанию, введенный с префиксом-[и оставленный с q), в котором нажатия клавиш могут иметь разные привязки, обычно без префикса. К сожалению, связывание многословных команд (, включая команды с аргументами ), в этом режиме не поддерживается (, см. tmux issue 215). Однако существует обходной путь: тестирование #{pane_in_mode}перед выполнением каких-либо действий. Основываясь на комментариях по этой проблеме и приведенном выше решении «связать без префикса»:

bind-key -n C-Up if-shell -F "#{pane_in_mode}" "resize-pane -U 5" "send-keys C-Up"
bind-key -n C-Down if-shell -F "#{pane_in_mode}" "resize-pane -D 5" "send-keys C-Down"
bind-key -n C-Left if-shell -F "#{pane_in_mode}" "resize-pane -L 5" "send-keys C-Left"
bind-key -n C-Right if-shell -F "#{pane_in_mode}" "resize-pane -R 5" "send-keys C-Right"
4
28.01.2020, 02:42

Теги

Похожие вопросы