Ваш файл конфігурації працює, але є кілька ускладнень.
Недовговічні команди
По-перше, команди, які ви запускаєте (екземпляри 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
в якості спрощеної команди заповнення місця, і ви насправді маєте намір породити якийсь тип інтерактивної команди у ваших windows / панелях, то, ймовірно, вам слід просто породити команду, яку ви планували врешті запустити. Якщо ваша цільова команда займає надто багато часу для запуску , щоб використовувати його під час tmux тестування, а потім замінити оболонку або інші просту інтерактивну команду (наприклад top
, sqlite3
і т.д.).
new-session
Чи є командою за замовчуванням
По-друге, запуск tmux без аргументу команди (наприклад tmux
) еквівалентно використанню new-session
команди (тобто tmux
те саме, що tmux new-session
). Ви .tmux.conf
створюєте сеанс для своїх windows / панелей ( new
це псевдонім для new-session
), а інший сеанс створюється для неявної new-session
команди, визначеної запускаючи tmux без аргументу команди. Якщо ви використовуєте рядок стану за замовчуванням, ви побачите a [1]
в лівій частині рядка стану, коли ви перебуваєте на "додатковому" сеансі (початковий сеанс, створений у .tmux.conf
номері 0).
Якщо ви хочете уникнути створення зайвого сеансу, тоді використовуйте tmux attach
замість простого tmux
. Команди з вашого .tmux.conf
запускаються, створюючи сеанс 0, а потім ваш клієнт приєднається до цього сеансу замість створення нового.
splitw
в ньому - нічого іншого - і я все одно не отримую розділений екран, тому що це говорить не вдається встановити поточний сеанс. Якщо додатиnew
до цього, я отримаю ... одне вікно, одну панель. Я не можу здатися, що за життя я отримаю дві панелі при запуску.