2013-03-14 4 views
1

Это моя PROMPT конфигурации Zsh:

PROMPT=$' 
%{$purple%}%n%{$reset_color%} at %{$orange%}%m%{$reset_color%} in %{$limegreen%}%~%{$reset_color%} $vcs_info_msg_0_ 
$ ' 

И это, как мой ЗШ отображает

shell screenshoot

Сначала я просто хочу, чтобы получить master** строку для другого использования, то я искал для получения zsh, и обнаружил, что сообщение было сгенерировано пакетом zsh vcs_info и хранилось в $vcs_info_msg_0_, но, как показывает скриншот, результат эха этой переменной был очень странным. Почему это произошло, и как я могу получить информацию git (master** с цветом) папки хранилища?

ответ

1

Это потому, что переменная должна использоваться только в подсказках, больше нигде. Странные вещи, которые вы видите, - это специальные управляющие последовательности, которые интерпретируются ZSH при визуализации подсказки.

+0

Хорошее объяснение, так есть ли другой способ получить информацию о git репо, как показывает подсказка? – Reorx

+1

Это действительно зависит от того, чего вы хотите достичь. Все, что делается, просто анализирует вывод 'git status',' git ls-files' и т. Д., Поэтому нет ничего, что помешало бы вам сделать то же самое. –