O cursor está no local errado depois que um comando sai com um status diferente de zero. O cursor está no topo da terceira divisa do prompt padrão ~ # ❯❯❯
. Vejo esse problema quando uso o Prezto na imagem Docker ubuntu:xenial
no macOS. Ele funciona conforme o esperado quando eu o uso no macOS sem o envolvimento do Docker.
Após um comando malsucedido, o cursor ficaria dois caracteres após a última divisa.
Após um comando malsucedido, o cursor fica diretamente em cima da última divisa. O próximo caractere que digito substitui a última divisa.
docker run -it ubuntu:xenial
apt-get update && apt-get install git zsh
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
zsh
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
zsh
false
Pressione x
Eu tive o mesmo problema em várias máquinas com e às vezes sem ssh.
Eu localizei problemas com a variável LANG configurada incorretamente.
tente locale se algo disser apenas "C", esse é o problema
Eu corrigi com as seguintes linhas em .zprofile
# fixes strange cursor position / formating bug
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
Minha localidade está definida como POSIX
. export LC_ALL=en_US.UTF-8
consertou! Obrigado, John! 💯
Na página de imagens do ubuntu docker diz
"Dado que é uma instalação mínima do Ubuntu, esta imagem inclui apenas as localidades C, C.UTF-8 e POSIX por padrão. Para a maioria dos usos que exigem uma localidade UTF-8, C.UTF-8 é provavelmente suficiente (- e LANG = C.UTF-8 ou ENV LANG C.UTF-8). "
Para mim, definir LANG = C.UTF-8 corrigiu o problema com as imagens ubuntu:artful
e ubuntu:bionic
quais testei isso
Obrigado pelas atualizações a todos! Parece que esse problema está relacionado ao uso de uma localidade não Unicode com Unicode no prompt. Não há muito que possamos fazer sobre isso no lado do prezto, então a melhor correção é definir sua localidade para um que seja compatível com Unicode.
EDIT: Especificamente, se eu tivesse que adivinhar, estaria relacionado a caracteres Unicode largos
Esse problema me incomodou novamente, mas em uma circunstância diferente. Este bug começou a ocorrer durante o ssh'ing em uma máquina Linux remota e estava funcionando de forma confiável no dia anterior. Não fui eu quem mudou. Acontece que mudei o local do meu laptop macOS de 🇺🇸 para 🇨🇦. Isso fez com que minha localidade na máquina Linux remota mudasse de en_US.UTF-8
para en_CA.UTF-8
. Parece que essas variáveis de ambiente estão sendo passadas por meio de ssh. export LC_ALL=en_US.UTF-8
consertou. A máquina remota não tinha esse local instalado.
Comentários muito úteis
Eu tive o mesmo problema em várias máquinas com e às vezes sem ssh.
Eu localizei problemas com a variável LANG configurada incorretamente.
tente locale se algo disser apenas "C", esse é o problema
Eu corrigi com as seguintes linhas em .zprofile