Кто-нибудь знает, почему я постоянно сталкиваюсь с этой ошибкой в zsh? Это похоже на ошибку форматирования строки:
~% printf "%s\n" foo
" foo)foo
В основном все, что имеет двойные кавычки, интерпретируется аналогичным образом:
~% perl -e 'printf("%s\n", "foobar")'
", "foobar")')foobar
Конфигурация Zsh не продумана, просто некоторые базовые вещи, такие как:
setopt appendhistory histignorealldups autocd autopushd
bindkey -e
zstyle :compinstall filename '/home/zike/.zshrc'
autoload -Uz compinit
compinit
какие-либо намеки, почему это может произойти? Спасибо.
Это работает для меня:
> printf "%s\n" foo
foo
Какая у вас версия zsh в какой системе? У меня в Linux стоит zsh 4.3.10.
хорошо. спасибо за ответы, я наконец-то снял шлепки и снова проверил файл конфигурации. это забавное поведение вызвано хуком preexec:
preexec () { print -Pn "\e]0;%m - %~ ($1)\a" }
$1
расширяется до пользовательского ввода, и zsh не понимает спецификатора формата (%s
то есть). я не нашел способа правильно очистить строку, но tr -d %
делает свою работу. побег %
не помогло.