feat(keybind): recall last history entry on empty prompt for ctrl-alt-u
This commit is contained in:
@@ -7,7 +7,9 @@
|
|||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
# Removes the first command token from the commandline buffer and
|
# Removes the first command token from the commandline buffer and
|
||||||
# positions the cursor for immediate replacement. If the command starts
|
# 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.
|
# Intended to be bound to a key in key_bindings.fish.
|
||||||
#
|
#
|
||||||
# EXAMPLE
|
# EXAMPLE
|
||||||
@@ -15,6 +17,12 @@
|
|||||||
function _replace_command_token --description 'Remove first command token (or first after sudo) and place cursor for replacement'
|
function _replace_command_token --description 'Remove first command token (or first after sudo) and place cursor for replacement'
|
||||||
set -l cmd (commandline)
|
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
|
# 1. Logic for commands starting with sudo
|
||||||
if string match -rq '^sudo\s+' -- "$cmd"
|
if string match -rq '^sudo\s+' -- "$cmd"
|
||||||
# regex explanation:
|
# regex explanation:
|
||||||
|
|||||||
Reference in New Issue
Block a user