Пару дней назад мне надоело, что каждый раз, при закрытии терминала, у меня сбрасываются все сессии и подключения и приходится по новой заходить в те папки, что были открыты. Я хотел получить от терминала непрерывность работы и сохранения состояний при паузах, точно так же как если бы, я закрыл 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.
Посмотреть весь список команд можно набрав ? в командном режиме.