Как я могу сделать так, чтобы все панели tmux имели свою уникальную историю оболочки? - PullRequest
1 голос
/ 23 апреля 2019

Предисловие: Моя текущая конфигурация tmux имеет несколько панелей в нескольких окнах за несколько сеансов.

Проблема, которая продолжает возникать, заключается в том, что когда я работаю в одном окне, вся моя история хороша и разделена между панелями этого окна, а когда я меняю окна / сеансы, эта история тоже изначально отдельна, но только до тех пор, пока я не введу одно окно. команда в другом окне / сеансе.

Как только это происходит, вся история всех панелей объединяется, и иногда невозможно найти фактическую последнюю команду определенной панели, в зависимости от того, сколько времени прошло с тех пор, как я находился на панели.

Есть ли способ избежать этого, и каждая панель имеет свою собственную историю оболочки?

1 Ответ

2 голосов
/ 23 апреля 2019

Если вы используете оболочку bash, ваша история команд записывается в файл, определенный переменной HISTFILE, по умолчанию ~/.bash_history.Внутри tmux панели у вас есть доступ к переменной $TMUX_PANE, которая выглядит примерно так:

$ echo $TMUX_PANE
%3

Вы можете использовать это, чтобы создать историю для каждой панели, добавив что-то подобное в ваш ~/.bashrc file:

if [[ $TMUX_PANE ]]; then
  HISTFILE=$HOME/.bash_history_tmux_${TMUX_PANE:1}
fi

Это сохранит историю для панели 2, например, в ~/.bash_history_tmux_2.

Недостатком этой идеи является то, что вы собираетесь закончитьс кучей .bash_history_tmux_* файлов в вашем домашнем каталоге.

...