From 3ec8c4730c95368bb63162b46f6ba7e9920bac2b Mon Sep 17 00:00:00 2001 From: Thek4n Date: Fri, 10 Nov 2023 15:05:51 +0300 Subject: [PATCH] feat(zsh): mapping alt+s to insert sudo at start of cmd --- home/user/.config/zsh/options | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/home/user/.config/zsh/options b/home/user/.config/zsh/options index db6cfa9..d223157 100644 --- a/home/user/.config/zsh/options +++ b/home/user/.config/zsh/options @@ -73,3 +73,23 @@ bindkey -M viins '^U' kill-whole-line bindkey -M viins '\e.' insert-last-word bindkey -M vicmd '^K' up-line-or-history bindkey -M vicmd '^J' down-line-or-history + + +insert-sudo() { + local sudo_template="${SUDO:=sudo} " + local template_len="${#sudo_template}" + + if [ -z "${LBUFFER}${RBUFFER}" ]; then + zle up-history + fi + if [ "${LBUFFER::$template_len}" = "$sudo_template" ]; then + LBUFFER="${LBUFFER:$template_len}" + else + LBUFFER="${sudo_template}${LBUFFER}" + fi +} + +zle -N insert-sudo + +bindkey -M vicmd '^[s' insert-sudo +bindkey -M viins '^[s' insert-sudo