vcs_info, правильный конфиг в zsh?
Я недавно установил zsh и нашел время, чтобы правильно его настроить, краткий обзор пробных методов:
setopt prompt_subst Используйте prompt_subst, чтобы мы могли просто использовать переменные vcs_info, и они будут обновляться во время выполнения.
Он работает с цветами и не должен ничего ломать, пытаясь модифицировать PS1. однако, я не могу понять, каковы недостатки для его включения?
psvar Используйте psvar для замены командной строки, работает, но портит цвета.
Обновляйте PS1 каждый раз. Хорошо работает, но все, что пытается изменить PS1, терпит неудачу, когда происходит сброс. Может быть исправлено с помощью хаков, но это слишком уродливый / хрупкий IMO, так что пропустите этот.
-
Итак, подведем итог:
- Какие минусы есть у включения prompt_subst?
- Есть ли способ заставить цвета работать с 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='$' ...
0 ответов на вопрос
Похожие вопросы
-
6
Какие функции Zsh вы используете?
-
2
CVS - игнорировать Thumbs.db в Windows
-
3
Пользовательские цвета для оболочки
-
-
1
Принудительно сломать петлю в ш
-
3
почему zsh git autocompletion не так хорош, как bash?
-
1
Общесистемные переменные среды для zsh в Ubuntu
-
1
Как получить доступ к каталогу с самой последней отметкой времени в его имени?
-
2
Тонкая настройка автозавершения Zsh Git
-
4
как отформатировать путь в приглашении zsh?
-
2
Как я могу исправить ввод имени команды дважды в Zsh?