Prezto: Cursor no local errado no Docker

Criado em 7 mar. 2018  ·  6Comentários  ·  Fonte: sorin-ionescu/prezto

Descrição

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.

Comportamento esperado

Após um comando malsucedido, o cursor ficaria dois caracteres após a última divisa.

Comportamento real

Após um comando malsucedido, o cursor fica diretamente em cima da última divisa. O próximo caractere que digito substitui a última divisa.

Passos para reproduzir

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

Versões

  • Compromisso Prezto: b3c27bb16460c677eabbe3d8e210f79fb5e8189b
  • Versão ZSH: 5.1.1
  • Informações do sistema operacional: Ubuntu 16.04 LTS (Xenial Xerus) no Docker para Mac 17.12.0-ce-mac55 (23011) no macOS High Sierra 10.13.3
  • Apple Terminal Versão 2.8 (400)
Invalid

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

# fixes strange cursor position / formating bug
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Todos 6 comentários

screen shot 2018-03-06 at 19 25 27

Pressione x

screen shot 2018-03-06 at 19 26 01

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.

Esta página foi útil?
0 / 5 - 0 avaliações