В zsh
, я часто роблю:
cd /path/to/somefile(:h)
( h
для head
).
Якщо somefile
це симпосилання, ви також можете зробити:
cd somefile(:A:h)
Щоб потрапити в каталог, де може бути знайдено ціль символьного посилання.
zsh
Еквівалент Chris 'тепер bash
-тільки рішення буде:
cd() {
[[ ! -e $argv[-1] ]] || [[ -d $argv[-1] ]] || argv[-1]=${argv[-1]%/*}
builtin cd "$@"
}
В zsh
, ви можете також перевизначити які «слова» Ctrl-WВидаляє.
Таким чином zsh
, "слова" в контексті віджетів на основі руху / транспонування / видалення - це послідовності alnum плюс символи $WORDCHARS
змінної, яка за замовчуванням включає /
.
Ви можете видалити /
з, $WORDCHARS
щоб видалити Ctrl-Wлише один компонент шляху:
WORDCHARS=${WORDCHARS/\/}
Ще одне корисне розширення - select-word-style
віджет, який ви можете використовувати для інтерактивного вибору між різними стилями слів.
autoload select-word-style
zle -N select-word-style
bindkey '\ew' select-word-style
Потім натискання Alt-Wдозволяє вибирати між різними стилями слів.
$ 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
?