tmux セッションを開くときに現在の bash 履歴を移植するにはどうすればよいですか?

tmux セッションを開くときに現在の bash 履歴を移植するにはどうすればよいですか?

私はよくこのような状況に陥ります:

  • ターミナルで何かを始めます。
  • 端末のスペースがもっと必要なので、 を開きますtmux
  • 履歴は消えてしまいました。tmux 内で実行したかったコマンドも消えてしまいました。

現在の bash 履歴を新しい tmux セッションに移植するにはどうすればよいでしょうか。理想的には、tmux 構成に追加できるもので、そうでない場合は のようなエイリアスに配置できるものですtmuxhist

答え1

これをあなたの に入れてください~/.bashrc:

export PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
shopt -s histappend

このソリューションは tmux に固有のものではなく、GNU screen やタブ付き端末、または新しい xterm ウィンドウを開くだけでも機能します。基本的には、「すべてのコマンドの履歴に追加し、bash が終了時に履歴ファイルを空にしないようにする」ということです。

これは、tmux で新しいペインを開き、Ctrl + P を押すと、前のペインで最後に実行されたコマンドを取得できることも意味します。

答え2

history -w; tmuxある程度は効果があります。

alias tmuxhist='history -w; tmux'エイリアスを作成します。

残念ながらそれはありえないtmux 設定で起動時に実行されるコマンドを追加します。

関連情報