12

У меня настроен zsh в Windows, и я получаю символ процента в обратном порядке (чёрный на белом (черный фон терминала)) в первой позиции символа в строке чуть выше каждого приглашения.

Обычно это означает , что нет никакой новой строки в конце файла, например , когда cat -ный файл.

Это не происходит на моем Mac или даже на Mintty в Windows. Но это происходит в ConEmu и стандартном терминальном приложении, в котором обычно запускается CMD.EXE.

Я уже unset все строки приглашения, а также precmd() который обычно использую, чтобы добавить пустую строку над приглашением.

Любая подсказка, что это может быть?

3 ответа3

24

Соответствующая опция, вероятно, PROMPT_SP , пояснение из руководства

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

Когда частичная строка сохранена, по умолчанию вы увидите знак ++жирный в конце частичной строки: % для обычного пользователя или знак # для корня. Если установлено, параметр оболочки PROMPT_EOL_MARK можно использовать для настройки отображения конца частичных строк.

Итак, либо вы делаете

unsetopt PROMPT_SP

если вас не волнует скрытая строка (однако в вашем случае она кажется пустой строкой, поскольку вы получаете знак % в начале).

Или использовать

setopt PROMPT_CR
setopt PROMPT_SP
export PROMPT_EOL_MARK=""

который сохраняет частичные строки, но удаляет % - за счет некоторых пустых строк в приглашении.

Чтобы сделать это постоянным, обновите ваш ~/.zshrc .

Это слепой выстрел, так как я не могу воспроизвести это поведение в моем cmd.exe .

2

Таким образом, у меня была та же самая проблема с моим zsh + oh-my-zsh.

Я исправил это с помощью mpy и этих строк:

установить PROMPT_CR

setopt PROMPT_SP

export PROMPT_EOL_MARK = ""

Вам просто нужно перейти на -> ~/.oh-my-zsh/themes/XXXXXX. Вам нужно открыть тему, которую вы используете на oh-my-zsh, так что для меня, например, ее агностер.

Просто откройте этот файл и скопируйте / пропустите эти 3 строки в конце файла.

И это исправлено!

Надеюсь, у вас хороший день, и это поможет некоторым людям.

PEACE

0

Вы можете запустить мятный внутри ConEmu. Это избавило меня от процентов.

Вот что у меня есть для параметров задачи:

/icon "%ConEmuDrive%\msys64\msys2.ico"

и команды:

set CHERE_INVOKING=1 & %ConEmuDrive%\\msys64\usr\bin\mintty.exe -i "%ConEmuDrive%\msys64\msys2.ico" -

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .