Ваш конфигурационный файл работает, но есть несколько сложностей.
Краткосрочные Команды
Во-первых, команды, которые вы запускаете (экземпляры 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вместо обычного tmux. Ваши команды .tmux.confбудут выполняться, создавая сессию 0, а затем ваш клиент будет присоединяться к этому сеансу вместо создания нового.
splitwон - больше ничего - и я все еще не получаю разделенный экран, потому что он говорит это не могу установить текущий сеанс. Если я добавлюnewперед этим, я получу ... одно окно, одну панель. Я не могу себе представить, чтобы за всю жизнь получить две панели при запуске.