Appearance
History
You can configure zsh-abbr to save abbreviations to your shell history.
There are two levers in the history system:
Save abbreviations to history
zsh-abbr can add expanded abbreviations to your shell history. Given this configuration [1]
shell
# .zshrc
ABBR_EXPAND_PUSH_ABBREVIATION_TO_HISTORY=1and these abbreviations
shell
% abbr a=b
% abbr -g c=dWhen you do any of
shell
% a[Space]
% a[Enter]
% c[Space]
% c[Enter]
% e c[Space]
% e c[Enter]the abbreviation you expanded (a or c) will be added to your shell history.
Save lines with abbreviations to history
When you hit enter[2] to expand an abbreviation and run the command line, an abbreviation in a line that has content besides the abbreviation, you can save the full line with the unexpanded abbreviation to the shell history.
shell
# .zshrc
ABBR_EXPAND_AND_ACCEPT_PUSH_ABBREVIATED_LINE_TO_HISTORY=1and this abbreviation
shell
% abbr -g c=dWhen you do
shell
% e c[Enter]two entries will be added to your shell history: first e c and then e d.
Caution
This feature supports hist_ignore_space (learn more in the zsh History Options docs) to a degree: it follows the value of hist_ignore_space when the session is initialized, but does not pick up on changes made interactively to the option.
Do this
shell
# .zshrc
setopt hist_ignore_space
ABBR_EXPAND_AND_ACCEPT_PUSH_ABBREVIATED_LINE_TO_HISTORY=1shell
abbr a=b
echo a[Enter] # `echo a` will saved to history (expected)
echo a[Enter] # `echo a` will not be saved to history (expected)Don't do this
shell
# .zshrc
ABBR_EXPAND_AND_ACCEPT_PUSH_ABBREVIATED_LINE_TO_HISTORY=1shell
abbr a=b
setopt hist_ignore_space
echo a[Enter] # `echo a` will saved to history (expected)
echo a[Enter] # ⚠️ `echo a` will be saved to history (unexpected) ⚠️Save abbreviations and lines with abbreviations to history
The two can be combined. Given this configuration,
shell
# .zshrc
ABBR_EXPAND_PUSH_ABBREVIATED_LINE_TO_HISTORY=1
ABBR_EXPAND_AND_ACCEPT_PUSH_ABBREVIATED_LINE_TO_HISTORY=1and this abbreviation
shell
% abbr -g c=dWhen you do
shell
% e c[Enter]three entries will be added to your shell history: first c, then e c, and then e d.
Learn more at Configuration variables. ↩︎
Learn more at Widgets and key bindings. ↩︎
