Пару дней назад мне надоело, что каждый раз, при закрытии терминала, у меня сбрасываются все сессии и подключения и приходится по новой заходить в те папки, что были открыты. Я хотел получить от терминала непрерывность работы и сохранения состояний при паузах, точно так же как если бы, я закрыл Sublime Text с несохранённым документом, то при открытии редактор показал бы мне мой документ со всеми несохранёнными правками. То есть я желал, чтобы при возобновлении работы после паузы, у меня не было необходимости восстанавливать всё, что было настроено до этого.

И кажется, я нашёл то, что мне нужно было. Решением оказался opernsource-проект Tmux. Самое главное, что в нём есть это сессии, они как раз сохраняют состояния между промежутками использования.

Tmux — очень специфичный терминал. И по началу не знаешь, что с ним делать. Вот несколько инструкций:

  • для сохранения состояний между сессиями добавьте в ваши конфигурационные файлы (~/.bash_rc или ~/.bash_profile) строчку alias tmux='tmux attach || tmux new' — тем самым, при запуске Tmux будет пробовать подключиться к предыдущей сесии до того, и только при неудаче создаст новую сессию;
  • ctrl+b — переводит tmux в режим команд, все остальные сочетания будут работать только в этом режиме;
  • команды ctrl+" и ctrl+% разбивают активную область (окно или панель) на две части (панели) — горизонтальные и вертикальные соответственно;
  • в режиме команд клавиши направлений (, , , ) переключают между панелями. А с зажатым ctrl изменяют размер активной панели;
  • ctrl+x — закрывает панель или окно, если панель была последней в окне;
  • команда ctrl+c — создаёт новое окно, удобно для того, чтобы держать в разных окнах разные проекты и не воссоздавать набор окон, открытых папок и подключений заново;
  • команда ctrl+, (да, запятая) позволяет переименовывать окно, я называю окно в соответствии с проектом, под который оно настроено;
  • команды ctrl+p и ctrl+n (prev, next) переключают в предыдущее и следующее окно, соответствено. Список оконо отображется внизу на зелёной полосочке; активное окно помечено символом *;
  • команда ctrl+N, где N — любая цифра, за которой закреплено какое-либо, уже существующее у вас окно. Обратите внимание, что нумерация окон начинается с 0.

Посмотреть весь список команд можно набрав ? в командном режиме.

Редактировать / Начать обсуждение