Shell vi mode is part of the POSIX standard, but emacs is not.
Dash has an option to be built with libedit that supports set -o vi. It should very much be built this way.
"[set -o] vi: Allow shell command line editing using the built-in vi editor. Enabling vi mode shall disable any other command line editing mode provided as an implementation extension. This option shall be supported if the system supports the User Portability Utilities option.
"It need not be possible to set vi mode on for certain block-mode terminals."
History classes are always fun! I didn't know dash had the command history feature. It is just disabled by default.
Shell vi mode is part of the POSIX standard, but emacs is not.
Dash has an option to be built with libedit that supports set -o vi. It should very much be built this way.
"[set -o] vi: Allow shell command line editing using the built-in vi editor. Enabling vi mode shall disable any other command line editing mode provided as an implementation extension. This option shall be supported if the system supports the User Portability Utilities option.
"It need not be possible to set vi mode on for certain block-mode terminals."
https://pubs.opengroup.org/onlinepubs/9799919799/utilities/ [V3_chap02.html]
Yes. The current state of things makes much more sense when one is aware of the background.