Скрипт Tmux, откройте две панели, привяжите клавишу закрытия

У меня есть следующий скрипт:

#!/bin/sh
tmux new-session -d -s vim 'vim index.js'
tmux split-window -h 'nodemon index.js'
tmux -2 attach-session -d

Моя цель - открыть сеанс tmux с помощью vim на левой панели и nodemon, работающего на правой . Кажется, это запускается нормально, но затем останавливается, и правая панель закрывается через несколько секунд.

Кроме того, я хотел бы, чтобы он устанавливал курсор на левой панели при запуске.

Любая помощь будет принята с благодарностью.


person Fluidbyte    schedule 23.06.2017    source источник


Ответы (1)


Проблема в том, что вы привязали панель к команде. Это означает, что когда вы закроете команду, панель тоже закроется. Используйте другой подход. Откройте панель, а затем send-keys, чтобы открыть нужную команду.

#!/bin/sh
tmux new-session -d -s vim 
tmux send-keys -t vim:.1 'vim index.js' Enter
tmux split-window -h 
tmux send-keys -t vim:.2 'nodemon index.js' Enter
# select pane
tmux select-pane -t vim:.2 
tmux -2 attach-session -d

Примечание. Также вы можете изучить https://github.com/tmuxinator/tmuxinator< /а>

person Sardorbek Imomaliev    schedule 26.06.2017
comment
Сейчас открываются две панели, но я получаю следующее can't find pane 1vim index.js, can't find pane 2 - person Fluidbyte; 26.06.2017
comment
@Fluidbyte Я забыл поставить пробел во второй строке после vim:.1. Использовать фиксированную версию - person Sardorbek Imomaliev; 27.06.2017
comment
да, я пробовал, все еще получаю can't find pane 1 и can't find pane 2 (дважды) - person Fluidbyte; 27.06.2017
comment
кажется, работает нормально, если я использую right и left вместо vim:.1 и vim:.2 - person Fluidbyte; 27.06.2017