iTerm2 (версия 3): Индивидуальная история для каждой вкладки?

iTerm2 (версия 3): Индивидуальная история для каждой вкладки?

Я использую iTerm2 (версия 3) и мне он нравится. Но вот что он делает уже некоторое время и что действительно раздражает, так это то, что история команд делится между вкладками. Например, на первой вкладке запустите команду fooи команду bar, затем перейдите на вторую вкладку и запустите say Hello, а затем вернитесь на первую вкладку; я бы хотел и ожидал, что стрелка вверх предложит barи затем foo, но вместо этого он предложит say Hello.

Есть ли способ исправить это поведение?

решение1

Если вы используете zsh, добавьте эти две строки ~/.zshrcпосле строкиsource $ZSH/oh-my-zsh.sh

unsetopt inc_append_history
unsetopt share_history

От zshoptions(1) - страница руководства Linux:

INC_APPEND_HISTORY

Эта опция работает так же, как APPEND_HISTORY, за исключением того, что новые строки истории добавляются в $HISTFILE постепенно (по мере их ввода), а не дожидаются завершения работы оболочки.

ПОДЕЛИТЬСЯ_ИСТОРИЕЙ

Эта опция импортирует новые команды из файла истории, а также добавляет введенные вами команды в файл истории (последнее действие аналогично указанию INC_APPEND_HISTORY).

Автор поста указал, что это именно тот вариант, который он искал:

ПРИЛОЖЕНИЕ_ИСТОРИЯ

Если это установлено, сеансы zsh будут добавлять свой список истории в файл истории, а не заменять его. Таким образом, все несколько параллельных сеансов zsh будут иметь новые записи из своих списков истории, добавленные в файл истории, в том порядке, в котором они выходят.

решение2

Дополнительная информация к идеальному ответу harrymc.

Это не Iterm2, а функция zsh, которая активируется по умолчанию, если вы используетео-мой-зш

(видеть:https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/history.zsh)

Поэтому поместите их в ваш файл .zshrc после source $ZSH/oh-my-zsh.sh(см. ответ harrymc)

unsetopt inc_append_history
unsetopt share_history

решение3

Вы можете установить для переменной среды HISTFILE какое-то уникальное значение, но я просто снимаю ее в своем файле .bashrcфайл:

export HISTFILE=""

но мне не хочется хранить свою историю в файле. При сбросе настроек история просто сохраняется в памяти.

решение4

Для Bashпользователей просто добавьте эти две строки в свой~/.bashrc

shopt -s histappend
PROMPT_COMMAND="history -a;history -c;history -r;$PROMPT_COMMAND"

Чтобы изменения вступили в силу, обязательно откройте новую вкладку.

Связанный контент