In zshmache ich oft:
cd /path/to/somefile(:h)
( hfür head).
Wenn somefilees sich um einen Symlink handelt, können Sie auch Folgendes tun:
cd somefile(:A:h)
Um zu dem Verzeichnis zu gelangen, in dem sich das Ziel des Symlinks befindet.
Das zshÄquivalent zu Chris 'jetzt basheinziger Lösung wäre:
cd() {
[[ ! -e $argv[-1] ]] || [[ -d $argv[-1] ]] || argv[-1]=${argv[-1]%/*}
builtin cd "$@"
}
In zshkönnen Sie auch neu definieren, welche "Wörter" Ctrl-Wentfernt werden.
In zsh"Wörter" im Kontext der wortbasierten Widgets zum Verschieben / Transponieren / Löschen sind Sequenzen von Alnums plus die Zeichen in der $WORDCHARSVariablen, die standardmäßig enthalten sind /.
Sie könnten entfernen /aus , $WORDCHARSso dass Ctrl-Wnur löscht eine Pfadkomponente:
WORDCHARS=${WORDCHARS/\/}
Eine weitere nützliche Erweiterung ist das select-word-styleWidget, mit dem Sie interaktiv zwischen verschiedenen Wortstilen wählen können.
autoload select-word-style
zle -N select-word-style
bindkey '\ew' select-word-style
Durch Drücken von Alt-Wkönnen Sie zwischen verschiedenen Wortstilen wählen.
$ cd /blah/blih<Alt-W>
Word styles (hit return for more detail):
(b)ash (n)ormal (s)hell (w)hitespace (d)efault (q)uit
(B), (N), (S), (W) as above with subword matching
?