Note that by adding "set editing-mode vi" to ~/.inputrc instead of putting "set -o vi" in ~/.bashrc you can extend vi keybindings beyond bash to *any* program that uses GNU readline.
There's a lot more interesting stuff you can do to customise your readline behaviour (including completion options and showing the editing mode in the prompt), see https://www.gnu.org/software/bash/manual/html_node/Readline-Init-File-Syntax.html
In the description of ERR and EXIT, it may be helpful to clarify that ERR gets triggered when a command (either external like "mkdir", "tar", or internal like "pushd") completes with an error status.
EXIT gets triggered when the shell process (script) itself exits.
Note that by adding "set editing-mode vi" to ~/.inputrc instead of putting "set -o vi" in ~/.bashrc you can extend vi keybindings beyond bash to *any* program that uses GNU readline.
There's a lot more interesting stuff you can do to customise your readline behaviour (including completion options and showing the editing mode in the prompt), see https://www.gnu.org/software/bash/manual/html_node/Readline-Init-File-Syntax.html