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 '%%'"

Надеюсь это поможет.

Другие вопросы по тегам