File tree Expand file tree Collapse file tree 4 files changed +56
-7
lines changed Expand file tree Collapse file tree 4 files changed +56
-7
lines changed Original file line number Diff line number Diff line change @@ -78,6 +78,7 @@ completion/available/vuejs.completion.bash
78
78
completion/available/wpscan.completion.bash
79
79
80
80
# libraries
81
+ lib/history.bash
81
82
lib/log.bash
82
83
lib/preexec.bash
83
84
lib/utilities.bash
Original file line number Diff line number Diff line change
1
+ # shellcheck shell=bash
2
+ #
3
+ # Functions for working with Bash's command history.
4
+
5
+ function _bash-it-history-auto-init() {
6
+ safe_append_preexec ' _bash-it-history-auto-save'
7
+ safe_append_prompt_command ' _bash-it-history-auto-load'
8
+ }
9
+
10
+ function _bash-it-history-auto-save() {
11
+ case $HISTCONTROL in
12
+ * ' noauto' * | * ' autoload' * )
13
+ : # Do nothing, as configured.
14
+ ;;
15
+ * ' auto' * )
16
+ # Append new history from this session to the $HISTFILE
17
+ history -a
18
+ ;;
19
+ * )
20
+ # Append *only* if shell option `histappend` has been enabled.
21
+ shopt -q histappend && history -a && return
22
+ ;;
23
+ esac
24
+ }
25
+
26
+ function _bash-it-history-auto-load() {
27
+ case $HISTCONTROL in
28
+ * ' noauto' * )
29
+ : # Do nothing, as configured.
30
+ ;;
31
+ * ' autosave' * )
32
+ # Append new history from this session to the $HISTFILE
33
+ history -a
34
+ ;;
35
+ * ' autoloadnew' * )
36
+ # Read new entries from $HISTFILE
37
+ history -n
38
+ ;;
39
+ * ' auto' * )
40
+ # Blank in-memory history, then read entire $HISTFILE fresh from disk.
41
+ history -a && history -c && history -r
42
+ ;;
43
+ * )
44
+ : # Do nothing, default.
45
+ ;;
46
+ esac
47
+ }
48
+
49
+ _bash_it_library_finalize_hook+=(' _bash-it-history-auto-init' )
Original file line number Diff line number Diff line change @@ -5,15 +5,14 @@ about-plugin 'improve history handling with sane defaults'
5
5
# variable when the shell exits, rather than overwriting the file.
6
6
shopt -s histappend
7
7
8
- # erase duplicates; alternative option: HISTCONTROL=ignoredups
9
- : " ${HISTCONTROL:= ignorespace: erasedups} "
8
+ # 'ignorespace': don't save command lines which begin with a space to history
9
+ # 'erasedups' (alternative 'ignoredups'): don't save duplicates to history
10
+ # 'autoshare': automatically share history between multiple running shells
11
+ : " ${HISTCONTROL:= ignorespace: erasedups: autoshare} "
10
12
11
13
# resize history to 100x the default (500)
12
14
: " ${HISTSIZE:= 50000} "
13
15
14
- # Flush history to disk after each command.
15
- export PROMPT_COMMAND=" history -a;${PROMPT_COMMAND} "
16
-
17
16
function top-history() {
18
17
about ' print the name and count of the most commonly run tools'
19
18
Original file line number Diff line number Diff line change @@ -582,6 +582,6 @@ function aws_profile {
582
582
}
583
583
584
584
function _save-and-reload-history() {
585
- local autosave= ${1:- 0}
586
- [[ $autosave -eq 1 ]] && history -a && history -c && history -r
585
+ [[ ${1:- ${autosave :- ${HISTORY_AUTOSAVE :- 0} } } -eq 1 ]] && local HISTCONTROL= " ${HISTCONTROL :- }${HISTCONTROL : + : } autoshare "
586
+ _bash-it- history-auto-save && _bash-it- history-auto-load
587
587
}
You can’t perform that action at this time.
0 commit comments