ITerm2(バージョン3.1.beta.5)を使用しています。しかし、それがしばらくの間行ってきたことの中で本当に厄介なのは、コマンド履歴がタブ間で共有されることです。たとえば、最初のタブでコマンドfoo
およびコマンドbar
を実行し、次に2番目のタブに移動してsay Hello
を実行し、最初のタブに戻ります。上矢印がbar
を提案し、次にfoo
を提案することを望みますが、代わりにsay Hello
を提案します。
この動作を修正する方法はありますか?
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セッションはすべて、終了した順に、履歴リストの新しいエントリを履歴ファイルに追加します。
ハリーマックの完璧な答えへの追加情報。
これは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
HISTFILE環境変数を一意の値に設定できますが、私が行うことは、単に.bashrcファイルで設定を解除することです。
export HISTFILE=""
しかし、私は自分の履歴をファイルに保存する必要はありません。設定を解除すると、履歴はメモリに保持されます。