web-dev-qa-db-ja.com

iTerm2(バージョン3):タブごとの個別の履歴?

ITerm2(バージョン3.1.beta.5)を使用しています。しかし、それがしばらくの間行ってきたことの中で本当に厄介なのは、コマンド履歴がタブ間で共有されることです。たとえば、最初のタブでコマンドfooおよびコマンドbarを実行し、次に2番目のタブに移動してsay Helloを実行し、最初のタブに戻ります。上矢印がbarを提案し、次にfooを提案することを望みますが、代わりにsay Helloを提案します。

この動作を修正する方法はありますか?

18
Alan H.

Zshを使用している場合は、これらの2行を.zshrcに追加します

unsetopt inc_append_history
unsetopt share_history

zshoptions(1)-Linux man page から:

INC_APPEND_HISTORY

このオプションはAPPEND_HISTORYと同様に機能しますが、シェルが終了するまで待つのではなく、新しい履歴行が(入力されるとすぐに)$ HISTFILEに追加されます。

SHARE_HISTORY

このオプションは両方とも、履歴ファイルから新しいコマンドをインポートし、入力したコマンドを履歴ファイルに追加します(後者はINC_APPEND_HISTORYの指定に似ています)。

ポスターは、これがむしろ彼が探していた選択肢であることを示しています:

APPEND_HISTORY

これが設定されている場合、zshセッションは履歴リストを置き換えるのではなく、履歴ファイルに追加します。したがって、複数の並列zshセッションはすべて、終了した順に、履歴リストの新しいエントリを履歴ファイルに追加します。

34
harrymc

ハリーマックの完璧な答えへの追加情報。

これはIterm2ではなく、 oh-my-zsh を使用するとデフォルトでアクティブになるzshの機能です。

(参照: https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/history.zsh

これらをsource $ZSH/oh-my-zsh.shの後に.zshrcファイルに入れます(harrymcの回答を参照)

unsetopt inc_append_history
unsetopt share_history
1
estani

HISTFILE環境変数を一意の値に設定できますが、私が行うことは、単に.bashrcファイルで設定を解除することです。

export HISTFILE=""

しかし、私は自分の履歴をファイルに保存する必要はありません。設定を解除すると、履歴はメモリに保持されます。

1
strobelight