Несмотря на то, что я начал использовать tmux для панелей, я все еще использую экран для мультиплексирования окон внутри. Предположительно, tmux обладает такой функциональностью, но переключение панелей из одного окна в другое не является для меня интуитивно понятным, и два подключенных средства просмотра tmux не могут просматривать разные окна в рамках одного и того же демона (поведение screen -x), таким образом, решение screen-in-tmux. Это две привязки tmux.conf, на которые у меня ушло больше всего времени, и я использую их каждый день.
Первый, bind M (ctrl-b shift-M), переключает tmux между средством выбора панели мыши и выделением / копированием мыши. Вы все еще можете копировать / вставлять в режиме выбора панели, но вы должны удерживать клавишу shift (и если вы привыкли к этому, копирование / вставка в любом другом приложении сделает вас немного несчастным, позвольте мне сказать вам). Макрос также делает визуально очевидным, какой режим выбран в данный момент.
bind M set mouse-select-pane \; if '[ "`tmux show -v mouse-select-pane`"= "on" ]' "set status-bg cyan \; set pane-active-border-bg cyan" "set status-bg green \; set pane-active-border-bg default"
Второй, bind CL (ctrl-b ctrl-l), возьмет любой макет из 4 панелей и превратит его в мой предпочтительный макет. Часто я обнаруживаю, что нажал ctrl-d на панели, которая, как мне казалось, находилась внутри экрана, чтобы закрыть его, но вместо этого не было сеанса экрана, и он закрывал панель. Так как мой макет v-split, h-split, v-split и некоторое изменение размера, если я случайно закрыл любое, кроме последнего окна, становится болью (без каламбура) закрывать любые промежуточные панели между тем, которое мне нужно воссоздать и последнее, затем заново создайте и измените размеры панелей и, наконец, заново присоедините все сеансы экрана, которые мне, возможно, пришлось отсоединить при уничтожении панелей. С помощью этого макроса я могу создать новую панель ctrl-b {(связывание по умолчанию для swap-pane -U), пока она не вернется в правильном порядке, затем нажать макрос и все вернется в нормальное состояние. Мой предпочтительный макет вряд ли совпадает с вашим,list-windows
Команда, чтобы получить строку макета, как показано ниже.
bind C-L select-layout a18e,155x94,0,0[155x18,0,0,6,155x75,0,19{81x75,0,19,31,73x75,82,19[73x22,82,19,32,73x52,82,42,33]}]
Если это слишком наивно для вашего вкуса, всегда есть tmuxinator для управления панелями.
zombie qr
держит окно открытым, даже если процесс не работает, и позволяетq
закрыть его илиr
воскресить. Полезно для проверки программного обеспечения.