Ваш конфигурационный файл работает, но есть несколько сложностей.
Краткосрочные Команды
Во-первых, команды, которые вы запускаете (экземпляры ls), заканчиваются очень быстро. Окна и панели для команд созданы, но они исчезают, как только выходит каждая команда.
Если ваша цель состоит в том, чтобы на самом деле использовать такие команды «одного выстрела» в вашей возможной конфигурации, то вам, вероятно, следует использовать опцию окна « remain-on-exit
(и, возможно, опцию сеанса « set-remain-on-exit
чтобы обеспечить значение по умолчанию для всех окна, созданные в сеансе). Когда для окна установлено remain-on-exit
, оно не исчезнет при выходе из команды. Возможно, вы захотите отобразить respawn-window
на клавишу (примечание: respawn-window
респауна возродит исходную команду; respawn-pane
также доступна в tmux 1.5 для перезапуска отдельных панелей).
bind-key R respawn-window
# set global r-o-e so that initial window of initial session gets it
set -g set-remain-on-exit on
# create a session and its windows/panes
new -n estruct ls
neww -n estruct2 ls
splitw -v -p 50 -t 0 ls
# restore global r-o-e
set -g set-remain-on-exit off
# let session r-o-e inherit from global value for future windows
set -u set-remain-on-exit
Или, если вы не возражаете против того, чтобы ваше начальное окно было номером 1 вместо номера 0, тогда мы можем избежать изменения глобального значения:
bind-key R respawn-window
# create a session with a throw-away window
new true
# for future windows, stay open after the command exits
set set-remain-on-exit on
# create the windows we really want
neww -n estruct ls
neww -n estruct2 ls
splitw -v -p 50 -t 0 ls
# for future windows, revert r-o-e to global value
set -u set-remain-on-exit
Если вы использовали только ls
в качестве упрощенной команды-заполнителя и на самом деле намереваетесь создать какой-то тип интерактивной команды в своих окнах / панелях, то вам, вероятно, следует просто создать команду, которую вы намеревались запустить. Если вашей предполагаемой команде требуется слишком много времени для запуска, чтобы использовать ее во время тестирования tmux , замените оболочку или другую простую интерактивную команду (например, top
, sqlite3
и т.д.).
new-session
- команда по умолчанию
Во-вторых, запуск tmux без аргумента команды (например, tmux
) эквивалентен использованию команды new-session
(т. tmux
аналогичен tmux new-session
). Ваш .tmux.conf
создает сеанс для своих окон / панелей (new
является псевдонимом для new-session
), и создается другой сеанс для неявной команды new-session
указанной при запуске tmux без аргумента команды. Если вы используете строку состояния по умолчанию, вы увидите [1]
в левой части строки состояния, когда вы находитесь в «дополнительном» сеансе (начальный сеанс, созданный в .tmux.conf
имеет номер 0).
Если вы хотите избежать создания дополнительного сеанса, используйте tmux attach
вместо plain tmux
. Команды из вашего .tmux.conf
будут выполняться, создавая сессию 0, а затем ваш клиент присоединится к этому сеансу вместо создания нового.