feat: zsh: add mappings for fast git status and list directory

This commit is contained in:
thek4n 2024-11-28 10:16:02 +03:00
parent c84367bf8c
commit fc232c4f80

View File

@ -1,3 +1,5 @@
# vim: ft=zsh
KEYTIMEOUT=1 KEYTIMEOUT=1
# Activate vim mode. # Activate vim mode.
bindkey -v bindkey -v
@ -22,17 +24,17 @@ bindkey '^[[Z' reverse-menu-complete # S-Tab
insert-sudo() { insert-sudo() {
local sudo_template="${SUDO:=sudo} " local sudo_template="${SUDO:=sudo} "
local template_len="${#sudo_template}" local template_len="${#sudo_template}"
if [ -z "${LBUFFER}${RBUFFER}" ]; then if [ -z "${LBUFFER}${RBUFFER}" ]; then
zle up-history zle up-history
fi fi
if [ "${LBUFFER::$template_len}" = "$sudo_template" ]; then if [ "${LBUFFER::$template_len}" = "$sudo_template" ]; then
LBUFFER="${LBUFFER:$template_len}" LBUFFER="${LBUFFER:$template_len}"
else else
LBUFFER="${sudo_template}${LBUFFER}" LBUFFER="${sudo_template}${LBUFFER}"
fi fi
} }
zle -N insert-sudo zle -N insert-sudo
@ -47,6 +49,28 @@ bindkey '^W' backward-delete-word
bindkey -M vicmd '^H' backward-delete-char bindkey -M vicmd '^H' backward-delete-char
listdirquiet() {
echo
ls
echo
zle reset-prompt
}
zle -N listdirquiet
bindkey "^L" listdirquiet
bindkey -M vicmd "^L" listdirquiet
gitstatusquiet() {
echo
git status
echo
zle reset-prompt
}
zle -N gitstatusquiet
bindkey "^N" gitstatusquiet
bindkey -M vicmd "^N" gitstatusquiet
popdquiet() { popdquiet() {
popd &>/dev/null popd &>/dev/null
zle reset-prompt zle reset-prompt