
Мне нравится иметь два сеанса/набора окон рядом,с независимым переключением окон, как на скриншоте - сейчас я делаю это, запуская два отдельных экземпляра Konsole, каждый с tmux attach -t session_name_here
, иПотрясающеWMпросто размещает их рядом, как любой X-клиент.
Такой способ создания такого рода макета имеет некоторые недостатки, в основном связанные с портативностью:
- Для него требуется X, поэтому его нельзя использовать из «чистой» консоли Linux.
- Это может быть не так удобно делать в других средах с нетайловыми WM (например, KDE или MacOS X)
Можно ли сделать то же самое исключительно с помощью tmux
, не полагаясь на какие-либо внешние приложения?
И как?
Обновление: выделил жирным шрифтом часть о независимом переключении окон
решение1
Вы можете использовать вложенные сеансы tmux:
┌───────────────────┐
│ ┌──────┐ ┌──────┐ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │tmux 2│ │tmux 3│ │
│ └──────┘ └──────┘ │
│ tmux 1 │
└───────────────────┘
Это довольно неуклюже (например, требует prefixprefixnпереключения "внутренних" окон), но в последних версиях tmux строка состояния может показывать, какой экземпляр контролируется в данный момент. Например, моя конфигурация имеет:
набор -g статус-bg цвет233 набор -g статус-fg цвет250 установить -g статус-левый "#{?client_prefix,#[fg=colour180]=#[fg=default], }#С " set -g status-right "%b %d, %H:%M " setw -g window-status-format ' #I #W ' setw -g window-status-current-format '#{?client_prefix,#[fg=colour0]#[bg=colour180],}#Я #W ' setw -g окно-статус-текущий-фон цвет166 setw -g window-status-current-fg цвет0 setw -g окно-статус-активность-bg цвет166 setw -g окно-статус-активность-fg цвет233
( #{?client_prefix}
требуется tmux ≥ v1.6)
решение2
Запустите экземпляр tmux, затем выполните , Ctrl+b %
чтобы разделить панель по вертикали. Для переключения между панелями используйтеCtrl+b arrow key
решение3
Альтернативный подход: переверните все с ног на голову — переключитесь с Vim на Neovim, используйте :terminal
и получите свойтерминалывнутривимразделенные окна:
(По умолчанию для выхода из режима ввода с терминала используется сочетание клавиш C-\ C-n, или вы можете щелкнуть по другому буферу.)