feat(keybind): recall last history entry on empty prompt for ctrl-alt-u #162
@@ -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.
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user