Вот пример использования ex
:
ex +"%norm 20I " +%p -scq! <(cal)
Замените 20
на необходимое количество пробелов. Использование «% norm 20I»
более эффективно, чем повторение множества пробелов с заменой - «% s / ^ / /»
.
Возможно, вам вообще не потребуется ничего добавлять в конфигурацию. Вот привязки по умолчанию для изменения размеров панелей (с :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"