複数のtmuxウィンドウを開いたときに履歴のすべての内容を保持するには、.bashrcファイルで次のコードを使用します。
# Avoid duplicates
HISTCONTROL=ignoredups:erasedups
# When the shell exits, append to the history file instead of overwriting it
shopt -s histappend
# After each command, append to the history file and reread it
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
私のLinuxコンピュータには問題はありません。しかし、macOSでは、tmuxで単独で使用するといくつかの問題が発生します(つまり、複数のオープン非同期端末がtmuxなしでうまく動作することを意味します)。
これにより、tmuxの新しいウィンドウには完全に空の履歴があります。
問題のメモコメントです複数の端末ウィンドウでbash履歴を保持する、macOSで同様のプログラムを使用すると、同じ問題が発生しますscreen
。
history -c;
コマンドの一部を削除しようとしましたが、新しいtmuxウィンドウの履歴は空ではありません。しかし、これが実行可能なソリューションなのか、どの警告があるのかわかりません。だから私の主な質問は、このキャラクターがどんな役割を果たし、history -c
なぜ必要なのかです。
メモ:問題を再現できない場合は、お知らせください。OSバージョン、プログラムバージョン、ログをお知らせします。
ベストアンサー1
history -c
簡単で短い答えは、a以前に実行しないとhistory -r
記録を読むことです。二重。
最後のコマンド(および対応する番号)は次のように提供されますfc -l -1
。
$ fc -l -1
19131 clear
歴史を読むと文書今回もほとんどの履歴をコピーします(ファイルではなくメモリにあります)。
$ history -r; fc -l -1
38319 fc -l -1
それが所有して使用する理由ですhistory -c
。
空の歴史
これにより、tmuxの新しいウィンドウには完全に空の履歴があります。解決策は非常に簡単でなければなりません。
history -r
そして、履歴ファイルのすべての履歴履歴はメモリに再び表示されます。