Dans zsh, je fais souvent:
cd /path/to/somefile(:h)
( hpour head).
Si somefileest un lien symbolique, vous pouvez également faire:
cd somefile(:A:h)
Pour accéder au répertoire où se trouve la cible du lien symbolique.
L' zshéquivalent de la bashsolution désormais unique de Chris serait:
cd() {
[[ ! -e $argv[-1] ]] || [[ -d $argv[-1] ]] || argv[-1]=${argv[-1]%/*}
builtin cd "$@"
}
Dans zsh, vous pouvez également redéfinir ce que les "mots" Ctrl-Wsuppriment.
Dans zsh, les "mots" dans le contexte des widgets de mouvement / transposition / suppression basés sur des mots sont des séquences d'aluns plus les caractères de la $WORDCHARSvariable qui inclut par défaut /.
Vous pouvez supprimer /de $WORDCHARSsorte que Ctrl-Wne supprime qu'un seul composant de chemin:
WORDCHARS=${WORDCHARS/\/}
Une autre extension utile est le select-word-stylewidget que vous pouvez utiliser pour choisir interactivement entre différents styles de mots.
autoload select-word-style
zle -N select-word-style
bindkey '\ew' select-word-style
Une pression sur Alt-Wvous permet de choisir entre différents styles de mots.
$ 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
?