mirror of
				https://github.com/tmux-plugins/tmux-resurrect.git
				synced 2025-11-04 00:46:04 +00:00 
			
		
		
		
	@@ -139,8 +139,10 @@ In `.tmux.conf`:
 | 
				
			|||||||
        set -g @resurrect-save-bash-history 'on'
 | 
					        set -g @resurrect-save-bash-history 'on'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Bash `history` for individual panes will now be saved and restored. Due to
 | 
					Bash `history` for individual panes will now be saved and restored. Due to
 | 
				
			||||||
technical limitations, this only works for panes which have Bash running in
 | 
					technical limitations, this only works for panes which have no program running in
 | 
				
			||||||
foreground (as opposed to e.g. vi or top) when saving.
 | 
					foreground when saving. `tmux-resurrect` will send history write command
 | 
				
			||||||
 | 
					to each such pane. To prevent these commands from being added to history themselves,
 | 
				
			||||||
 | 
					add `HISTCONTROL=ignoreboth` to your `.bashrc` (this is set by default in Ubuntu).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Other goodies
 | 
					### Other goodies
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -86,7 +86,8 @@ pane_full_command() {
 | 
				
			|||||||
save_shell_history() {
 | 
					save_shell_history() {
 | 
				
			||||||
	local pane_id="$1"
 | 
						local pane_id="$1"
 | 
				
			||||||
	local pane_command="$2"
 | 
						local pane_command="$2"
 | 
				
			||||||
	if [ "$pane_command" = "bash" ]; then
 | 
						local full_command="$3"
 | 
				
			||||||
 | 
						if [ "$pane_command" = "bash" ] && [ "$full_command" = ":" ]; then
 | 
				
			||||||
		# leading space prevents the command from being saved to history
 | 
							# leading space prevents the command from being saved to history
 | 
				
			||||||
		# (assuming default HISTCONTROL settings)
 | 
							# (assuming default HISTCONTROL settings)
 | 
				
			||||||
		local write_command=" history -w '$(resurrect_history_file "$pane_id")'"
 | 
							local write_command=" history -w '$(resurrect_history_file "$pane_id")'"
 | 
				
			||||||
@@ -121,9 +122,9 @@ dump_state() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dump_bash_history() {
 | 
					dump_bash_history() {
 | 
				
			||||||
	dump_panes_raw |
 | 
						dump_panes |
 | 
				
			||||||
		while IFS=$'\t' read line_type session_name window_number window_name window_active window_flags pane_index dir pane_active pane_command pane_pid; do
 | 
							while IFS=$'\t' read line_type session_name window_number window_name window_active window_flags pane_index dir pane_active pane_command full_command; do
 | 
				
			||||||
			save_shell_history "$session_name:$window_number.$pane_index" "$pane_command"
 | 
								save_shell_history "$session_name:$window_number.$pane_index" "$pane_command" "$full_command"
 | 
				
			||||||
		done
 | 
							done
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user