2013-06-14 1 views
1

Я назначен каталог переменного в моем файле .zshrc так:ЗШ проворный используют имена переменных (несмотря на его отключение AUTO_NAME_DIRS)

export DOTFILES=$HOME/.dotfiles

Теперь мой ЗШ подсказка читает ~DOTFILES, когда я нахожусь в .dotfiles каталог. Я провел некоторое исследование (в этой теме: Variable names in prompt instead of path) и обнаружил, что zsh имеет опцию AUTO_NAME_DIRS, которая делает именно это.

Я пробовал unsetopt AUTO_NAME_DIRS, но моя подсказка zsh по-прежнему показывает имя переменной вместо пути. Я запустил команду unsetopt и обнаружил, что autonamedirs действительно находится в списке неустановленных параметров. Я также запустил setopt, чтобы убедиться, что его нет в списке параметров набора, и это не так.

Любые идеи о том, как исправить это?

ответ

1

Подумайте об этом как о крючке, чтобы создать именованные каталоги, которые запускаются при переменной настройке.

Так что если auto_name_dirs параметр установлен и установить некоторое значение % TMP=/tmp, он будет также создать именованный каталог для /tmp с помощью TMP. Если вы позже отключите параметр, то останется имя каталога. Если вы создадите несколько переменных % USER=/usr с auto_name_dirs unset, и после установки опции, ни одно имя каталога не будет иметь места.

~ % zsh -f 
dhcp-193-107% setopt autonamedirs 
dhcp-193-107% TMP=/tmp 
dhcp-193-107% export PS1="dir-prompt %~ : " 
dir-prompt ~ : cd /tmp 
dir-prompt ~TMP : unset autonamedirs 
dir-prompt ~TMP : cd/
dir-prompt/: cd /tmp 
dir-prompt ~TMP : # see the dir name still exists 
dir-prompt ~TMP : USER=/usr  
dir-prompt ~TMP : cd /usr 
dir-prompt /usr : # no dir name for /usr 
dir-prompt /usr : setopt autonamedirs 
dir-prompt /usr : cd/
dir-prompt/: cd /usr 
dir-prompt /usr : # still no dir name for /usr 
+0

Спасибо за отличную иллюстрацию - это действительно помогло мне сузить решение (подробно описано выше). – brownbathrobe

 Смежные вопросы

  • Нет связанных вопросов^_^