feat(shell): add bash-style history expansions and interactive keybindings

- Replicate bash bang-operations (!^, !*, !string, etc.) via abbreviations
- Add Ctrl+G for previous path head insertion
- Add Ctrl+F for interactive history substitution
- Add Ctrl+Alt+U to quickly replace command tokens
- Update README documentation for all new features
This commit is contained in:
2026-04-30 01:03:13 -04:00
parent 6722deea3c
commit ada58e8818
12 changed files with 234 additions and 2 deletions
+17
View File
@@ -0,0 +1,17 @@
function __interactive_history_sub
set -l current_line (commandline -b)
set -l last_cmd $history[1]
if string match -qr '(.+)/(.+)' -- "$current_line"
set -l parts (string split '/' -- "$current_line")
set -l old $parts[1]
set -l new $parts[2]
set -l expanded (string replace -a -- "$old" "$new" "$last_cmd")
commandline -r "$expanded"
else
if test -z "$current_line"
commandline -r "sudo $last_cmd"
end
end
commandline -f repaint
end