Por que um sinal de porcentagem é exibido antes de cada prompt no zsh no Windows?

12

Estou configurando o zsh no Windows e estou obtendo um símbolo de porcentagem reversa (preto sobre branco (fundo do terminal preto)) na primeira posição de caractere na linha logo acima de cada prompt.

Geralmente, isso significa que não há nova linha no final do arquivo, por exemplo, quando cat -ing um arquivo.

Isso não acontece no meu Mac ou mesmo no Mintty no Windows. Mas isso acontece no ConEmu e no aplicativo de terminal padrão que o CMD.EXE geralmente executa.

Eu já tenho unset de todas as strings de prompt, assim como precmd() , que normalmente uso para adicionar uma linha em branco acima do prompt.

Alguma pista do que poderia ser?

    
por scanny 15.09.2013 / 12:31

3 respostas

23

A opção relevante provavelmente é PROMPT_SP , explanação do manual

Attempt to preserve a partial line (i.e. a line that did not end with a newline) that would otherwise be covered up by the command prompt due to the PROMPT_CR option. This works by outputting some cursor-control characters, including a series of spaces, that should make the terminal wrap to the next line when a partial line is present (note that this is only successful if your terminal has automatic margins, which is typical).

When a partial line is preserved, by default you will see an inverse+bold character at the end of the partial line: a % for a normal user or a # for root. If set, the shell parameter PROMPT_EOL_MARK can be used to customize how the end of partial lines are shown.

Então, você faz um

unsetopt PROMPT_SP

se você não se importa com a linha encoberta (no entanto, no seu caso, parece ser uma linha vazia, já que você recebe o sinal % no começo).

Ou use

setopt PROMPT_CR
setopt PROMPT_SP
export PROMPT_EOL_MARK=""

que preserva linhas parciais, mas remove o % - ao custo de algumas linhas vazias sobre o prompt.

Para tornar isso permanente, atualize seu ~/.zshrc .

Esta é uma foto cega, já que não consigo reproduzir esse comportamento no meu cmd.exe .

    
por 15.09.2013 / 13:01
1

Então eu estava tendo exatamente o mesmo problema com meu zsh + oh-my-zsh.

Eu consertei com a ajuda do mpy e dessas linhas:

setopt PROMPT_CR

setopt PROMPT_SP

export PROMPT_EOL_MARK=""

Você só tem que ir para - > ~ / .oh-my-zsh / themes / XXXXXX Você precisa abrir o tema que está usando em oh-my-zsh, para mim, por exemplo, seu agnoster.

Basta abrir esse arquivo e copiar / passar essas 3 linhas no final do arquivo.

E está consertado !!

Espero que você tenha um bom dia e que isso ajude algumas pessoas.

PEACE

    
por 28.09.2016 / 15:56
0

Você pode executar o mintty dentro do ConEmu. Isso se livrou das porcentagens para mim.

Veja o que eu tenho para os parâmetros da tarefa:

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

e comandos:

set CHERE_INVOKING=1 & %ConEmuDrive%\msys64\usr\bin\mintty.exe -i "%ConEmuDrive%\msys64\msys2.ico" -
    
por 10.02.2016 / 11:28