mirror of
https://github.com/tmux-plugins/tmux-resurrect.git
synced 2024-11-24 13:58:48 +00:00
commit
059686ab6c
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user