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