vcs_info, правильный конфиг в zsh?

1038
Not Available

Я недавно установил zsh и нашел время, чтобы правильно его настроить, краткий обзор пробных методов:

setopt prompt_subst Используйте prompt_subst, чтобы мы могли просто использовать переменные vcs_info, и они будут обновляться во время выполнения.

Он работает с цветами и не должен ничего ломать, пытаясь модифицировать PS1. однако, я не могу понять, каковы недостатки для его включения?

psvar Используйте psvar для замены командной строки, работает, но портит цвета.

Обновляйте PS1 каждый раз. Хорошо работает, но все, что пытается изменить PS1, терпит неудачу, когда происходит сброс. Может быть исправлено с помощью хаков, но это слишком уродливый / хрупкий IMO, так что пропустите этот.

-

Итак, подведем итог:

  1. Какие минусы есть у включения prompt_subst?
  2. Есть ли способ заставить цвета работать с psvar

Если prompt_subst имеет существенные недостатки, то 2 будет наилучшей альтернативой, если это вообще возможно, 3 немного хрупкая, поэтому лучше не использовать ее.

Соответствующая часть моего .zshrc

...  autoload -Uz vcs_info  # Needs to be enabled for the prompt to change setopt prompt_subst  # Formats VCS_FORMAT="%{$fg_bold[magenta]%}(%{$reset_color%}%{$fg_bold[yellow]%}%b%{$reset_color%}" VCS_APPEND="%{$fg_bold[magenta]%})%{$reset_color%}" VCS_NORMAL_FORMAT="$%{$fg_bold[magenta]%}:%{$reset_color%}%{$fg_bold[green]%}%8.8i%{$reset_color%}$" VCS_ACTION_FORMAT="$%{$fg_bold[magenta]%}:%{$reset_color%}%{$fg_bold[red]%}%a%{$reset_color%}$"  zstyle ':vcs_info:*' enable git hg svn  zstyle ':vcs_info:*' get-revision true  zstyle ':vcs_info:*' formats $VCS_NORMAL_FORMAT  zstyle ':vcs_info:*' actionformats $VCS_ACTION_FORMAT  precmd () { vcs_info  PS1_STR="" PS1_STR="$%{$fg_bold[magenta]%}[%{$reset_color%}%{$fg_bold[green]%}%m%{$reset_color%}%{$fg_bold[magenta]%}]%{$reset_color%}" #hostname PS1_STR="$%{$fg_bold[magenta]%}[%{$reset_color%}%{$fg_bold[blue]%}%n%{$reset_color%}%{$fg_bold[magenta]%}]%{$reset_color%}" #user PS1_STR="$%{$fg_bold[magenta]%}[%{$reset_color%}%{$fg_bold[cyan]%}%1~%{$reset_color%}%{$fg_bold[magenta]%}]%{$reset_color%}" #folder PS1_STR="$$\$ " #branch/end }   export PS1='$'  ... 
1

0 ответов на вопрос

Похожие вопросы