Я часто запускаю Vim в сеансе tmux, чтобы я мог запускать тесты в соседней панели. На меньшем мониторе я либо должен пожертвовать больше экрана Vim экраном, чем я хотел бы, или сделать тестовую панель слишком маленькой, чтобы читать полные результаты (это нормально, если все проходит, но не тогда, когда есть сбои, и мне нужно для просмотра деталей).переключение между 2 макетами tmux
Тогда мой рабочий процесс становится:
- запуска тестов внутри Vim
- переключатель на тестовой панели панели (
last-pane
) - трансфокатора занять полное окно (
resize-pane -Z
) - читать результаты
- восстановление оригинальной компоновки (
resize-pane -Z
) - переключатель обратно в Vi м панели (
last-pane
)
Я хотел бы добавить ключ привязки, которые я мог бы использовать, когда я нахожусь в панели Vim для увеличения тестовой панели (прячась Vim), и быть в состоянии использовать ту же привязку раз увеличены чтобы восстановить исходный макет, вернув меня в Вим. Это то, что я придумал, но мне интересно, есть ли лучший способ сделать это. Я должен был установить, проверить и отключить переменную среды, чтобы сохранить состояние, которое будет поддерживать переключение туда и обратно с тем же привязкой клавиш. Я тоже не понял, как сделать включенности специфичную для окна (прямо сейчас, любой сессии акции мультиокна государства во всех его окон, так что это не работает правильно)
bind Space if-shell '[ -z "${ALT_PANE_ZOOM+x}" ]' \
'select-pane -t :.+; resize-pane -Z; set-environment ALT_PANE_ZOOM 1' \
'set-environment -u ALT_PANE_ZOOM; last-pane'
Обновление: Я нашел более простое решение. Вместо того, чтобы полагаться на переменных окружения каждого окна, я могу использовать -F
и переменный формат window_zoomed_flag
:
bind Space if-shell -F '#{window_zoomed_flag}' \
'last-pane' \
'select-pane -t :.+; resize-pane -Z'