Я часто оказываюсь в такой ситуации:
- Я начинаю что-то делать в терминале.
- Мне нужно больше места на терминале, поэтому я открываю
tmux
. - История исчезла, даже команды, которые я хотел запустить внутри tmux.
Как мне перенести текущую историю bash в новый сеанс tmux? В идеале что-то, что я могу добавить в конфигурацию tmux, а в противном случае что-то, что я могу поместить в псевдоним, например tmuxhist
.
решение1
Вставьте это в свой ~/.bashrc
:
export PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
shopt -s histappend
Это решение не относится только к tmux, оно также будет работать с GNU screen или tabbed-терминалами или просто открытием новых окон xterm. По сути, оно говорит: «добавить к истории при каждой команде и убедиться, что bash не очищает файл истории при выходе».
Это также означает, что вы можете открыть новую панель в tmux и нажать ctrl+p, чтобы выполнить последнюю команду, выполненную на предыдущей панели.
решение2
history -w; tmux
в какой-то степени это срабатывает.
alias tmuxhist='history -w; tmux'
создает для него псевдоним.
К сожалению, этоневозможнодля добавления команд, которые будут выполняться при запуске, в конфигурацию tmux.