tmux: открытие новой оболочки в панели?
Я использую GNU Screen в течение некоторого времени и уже привык к следующему рабочему процессу, где я буду:
- Разделить регион на два окна (
C-a "
или жеC-a |
) - Откройте новые оболочки в этих двух окнах и при необходимости пролистайте их (
C-a c
,C-a n
, так далее).
Этот рабочий процесс означает, что я могу держать окно разделенным по вертикали и иметь открытую документацию на левой панели, а также циклически перемещаться по различным другим оболочкам (с другими запущенными командами) на правой панели, не затрагивая левую. Я не могу сделать это в tmux.
В tmux я, очевидно, могу разделить окно на панели аналогичным образом, но, похоже, я не могу открывать новые оболочки на каждой панели и циклически проходить по ним, как в GNU Screen. Это недостаток tmux, или я просто пропустил соответствующую команду на странице руководства?
1 ответ
Либо вы хотите изменить порядок панелей, либо ищете что-то вроде окон tmux внутри панели tmux.
Для первого, проверьте
Ctrl+b Meta+[1-5]
Во-вторых, это разница между tmux и screen.
Tmux различает окно и панель. Экран имеет только окна. Вот почему, когда вы разделяете и отделяете, он не будет помнить, как это было (если вещи не изменились).
Теперь, чтобы сделать что-то подобное в Tmux, все, о чем я могу думать, это либо вложение сессий Tmux, либо использование join-pane
: (v2.1)
join-pane [-bdhv] [-l size | -p percentage] [-s src-pane] [-t dst-pane]
(alias: joinp)
Like split-window, but instead of splitting dst-pane and creating a new pane, split it and move src-pane into the space. This can be used to reverse break-pane. The -b option causes src-pane to be
joined to left of or above dst-pane.
If -s is omitted and a marked pane is present (see select-pane -m), the marked pane is used rather than the current pane.
На основании этого я нашел этот ответ, https://unix.stackexchange.com/a/14301 котором есть пример, который вы, возможно, захотите использовать:
# pane movement
bind-key j command-prompt -p "join pane from:" "join-pane -s '%%'"
bind-key s command-prompt -p "send pane to:" "join-pane -t '%%'"
Надеюсь это поможет.