В tmux я могу получить " exit` для выхода из содержащего окна терминала, а не из самого сеанса?

поэтому, когда я открываю новый терминал (я использую terminator на Arch Linux), у меня он настроен на открытие нового tmux сеанс, если он не существует, или присоединить к существующему. Когда я печатаю exit в командной строке он завершает сеанс tmux. Я должен набрать exit снова выйти из терминала. Что я хочу, так это печатать exit один раз выйдет из терминала, но оставьте tmux работает, поэтому в следующий раз, когда я открою терминал, он снова присоединится к предыдущему tmux сессии. Существенно, это эквивалентно нажатию кнопки exit для менеджера окон, но мне нужна эта функциональность при вводе exit.

EDIT:

это что-то вроде того, что я хочу:

alias exit='if [[ $TMUX = "" ]]; then exit; else tmux detach; exit; fi'

но вопрос exit после tmux detach должен вызываться в терминале, содержащем сеанс tmux, а не сам сеанс tmux.

5
задан gsingh2011
источник

2 ответов

мы должны объявить две функции, одну для запуска tmux, а другую для выхода из tmux:

function ttmux {
if     (pgrep tmux); then
       tmux attach
  else tmux
  fi
builtin exit
}

Это будет выполняться либо (tmux attach или tmux), если процесс tmux существовал или нет, после того , как вы закончите использовать tmux, встроенный выход будет выполнен, чтобы закрыть терминал(если нет вложенной оболочки).

function exit {
if      [ ${TMUX} ]; then
          tmux detach
      else builtin exit
     fi
}

Если вы внутри tmux отсоедините его, если не выполнит встроенный выход

положить их в свой .bashrc или .zshrc и измените имя функции, если хотите, и позвони им.

>> ttmux # to start tmux
>> exit # to detach tmux
2
отвечен Ahed Eid 2014-08-14 05:39:58
источник
terminator -e tmux

это запустит terminator с запущенным tmux вместо оболочки. если процесс tmux выходит Терминатор закроет сразу после.

0
отвечен lesmana 2014-08-06 01:32:45
источник

Другие вопросы bash linux terminal tmux