Merge pull request 'feat(keybind): recall last history entry on empty prompt for ctrl-alt-u' (#162) from feat/replace-command-token-empty-recall into main
CI / github-mirror (push) Skipped
CI / test (push) Successful in 2m11s
CI / build-docs (push) Successful in 3m55s

This commit was merged in pull request #162.
This commit is contained in:
2026-09-21 23:14:16 +00:00
committed by Gitea
2 changed files with 13 additions and 2 deletions
+4 -1
View File
@@ -29,8 +29,11 @@ are active in Insert, Normal, and Visual modes unless noted.
Ctrl+Alt+U Strip the first token of the current command line,
leaving arguments in place with the cursor at the
start. Useful for quickly retyping the command.
start. Useful for quickly retyping the command. On
an empty command line, first recalls the most recent
history entry (like Up), then strips its first token.
Example: "mkdir new_folder" -> " new_folder"
Example: empty line after "cd /home/me" -> " /home/me"
Ctrl+Alt+= Evaluate the current command line buffer with
Qalculate! (qalc) and print the result inline.
+9 -1
View File
@@ -7,7 +7,9 @@
# DESCRIPTION
# Removes the first command token from the commandline buffer and
# positions the cursor for immediate replacement. If the command starts
# with sudo, preserves sudo and removes the token after it instead.
# with sudo, preserves sudo and removes the token after it instead. If
# the commandline is empty, first recalls the most recent history entry
# (like pressing Up) before doing the token replacement on it.
# Intended to be bound to a key in key_bindings.fish.
#
# EXAMPLE
@@ -15,6 +17,12 @@
function _replace_command_token --description 'Remove first command token (or first after sudo) and place cursor for replacement'
set -l cmd (commandline)
# Empty prompt: recall the last history entry first, same as it would
# behave if that command were already on the commandline.
if string match -rq '^\s*$' -- "$cmd"
set cmd (history --max 1)
end
# 1. Logic for commands starting with sudo
if string match -rq '^sudo\s+' -- "$cmd"
# regex explanation: