Fryboyter

Teile des Pfads bis zum Slash unter der ZSH löschen

Nehmen wir einmal an, dass in der Historie der ZSH der Befehl "cd /home/nutzer/Downloads/Filme/Action" vorhanden ist. Was aber, wenn man nur in den Ordner Downloads wechseln will?

Eine Möglichkeit wäre, den Befehl aus der Historie aufzurufen und einfach Filme/Action zu löschen bevor man den Befehl ausführt. Oder man drückt einfach ALT + Backspace. Hier macht die ZSH allerdings Probleme. Anstelle bis beispielsweise rückwärts bis zum nächsten Slash zu löschen, wird bis zum nächsten Leerzeichen gelöscht. Somit wird aus "cd /home/nutzer/Downloads/Filme/Action" mit nur einem Shortcut "cd". Irgendwie blöd. Also muss mal wieder meine .zshrc erweitert werden. In diese habe ich folgende Funktion gepackt.

function backward-kill-partial-word {
         local WORDCHARS="${WORDCHARS//[\/.]/}"
         zle backward-kill-word "$@"
     }
     zle -N backward-kill-partial-word
     for x in '^Xw' '^[^?' '^[^H'; do
         bindkey "$x" backward-kill-partial-word
     done; unset x

Mittels WORDCHARS wir hierbei definiert, dass auch / Teil eines Worts ist. Speichert man nun die .zshrc und läd diese mittels "source ~/.zshrc" erneut ein lässt sich nun ein eingegbener Pfad mittels ALT + Backspace bis zum jeweils nächsten Slash rückwärts löschen.


Diese Artikel könnten auch interessant sein