Помощь с git в подсказке zsh

Вы забыли заключить в кавычки оператор glob [[:space:]]и используете такую ​​оболочку, как csh, tcsh, fish(, хотя fishне поддерживает [...]операторы glob ), zsh,bash -O failglob(скорее всего (t)cshучитывая сообщение об ошибке )о том, что (правильно )не удается выполнить команду, когда глобус не совпадает.

tcshне распознает [:space:]классы символов POSIX, но этот s/=[[:space:]]0/-180/по-прежнему распознается как глобус.

После mkdir -p 's/=a]0/-180'глобус будет совпадать. Это s/=[[:space:]]0/-180/будет расширено до s/=a]0/-180/, и вы не получите ошибку No match.

Вместо этого здесь вы хотите процитировать это, чтобы оболочка не рассматривала его как шаблон глобуса и передала строку буквально в sed.

(Здесь я также добавляю отсутствующий *, чтобы разрешить 0 или более символов пробела в шаблоне, и отсутствующий =в качестве замены):

sed 's/=[[:space:]]*0/=-180/'

Или сохранить исходный интервал:

sed 's/\(=[[:space:]]*\)0/\1-180/'
1
17.12.2019, 23:56
1 ответ

В Интернете есть множество руководств и фрагментов, в основном для Bash, но также и для Zsh. Например, это руководство , в котором используется следующий код:

# Load version control information
autoload -Uz vcs_info
precmd() { vcs_info }

# Format the vcs_info_msg_0_ variable
zstyle ':vcs_info:git:*' formats 'on branch %b'

# Set up the prompt (with git branch name)
setopt PROMPT_SUBST
PROMPT='%n in ${PWD/#$HOME/~} ${vcs_info_msg_0_} > '

Он опирается на vcs_infoот Zsh, чтобы предоставить вам информацию о ветке.

Выполнив поиск в Интернете по запросу «git prompt zsh», вы найдете больше. См. также этот вопрос или этот или более общее руководство поvcs_info.

1
27.01.2020, 23:40

Теги

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