shell: jump cursor to line end on bash history search

history-search-* leaves the cursor at the prefix boundary, not the end,
unlike zsh's history-search-end widget. Bind the search functions to
throwaway keys and map the arrows to a macro that runs the search then
end-of-line, so prefix recall lands the cursor at EOL like zsh.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-29 12:10:51 +02:00
parent ad5a6c98ea
commit 61de00137c
+12 -5
View File
@@ -6,8 +6,15 @@
$include /etc/inputrc
# zsh-style prefix history search: type a prefix, Up/Down walk matching
# history entries with cursor at end of line. Empty prefix = previous/next.
"\e[A": history-search-backward
"\e[B": history-search-forward
"\eOA": history-search-backward
"\eOB": history-search-forward
# history entries with cursor at END of line. Empty prefix = previous/next.
#
# Readline's history-search-* leaves the cursor at the prefix boundary, not the
# end (that's why zsh needs its history-search-end widget). There's no built-in
# "search then go to end", so: bind the real functions to throwaway keys, then
# bind the arrows to a MACRO that runs the search and then end-of-line (\C-e).
"\C-x\C-p": history-search-backward
"\C-x\C-n": history-search-forward
"\e[A": "\C-x\C-p\C-e"
"\e[B": "\C-x\C-n\C-e"
"\eOA": "\C-x\C-p\C-e"
"\eOB": "\C-x\C-n\C-e"