Ohmyzsh: No estamos de acuerdo con el tema y el comportamiento extraño de git

Creado en 4 feb. 2016  ·  3Comentarios  ·  Fuente: ohmyzsh/ohmyzsh

El tema wedisagree tiene un comportamiento extraño en las carpetas de git.
En las carpetas normales todo funciona perfectamente, pero cuando llego a una carpeta git, el cursor del terminal está 4 columnas a la izquierda de donde se suponía que debía estar. Sé que fue una mala descripción, pero es fácil de reproducir y, con suerte, la captura de pantalla adjunta ayudará.

Estoy usando Arch Linux, Awesome y Terminator.
deepinscreenshot20160204100658

Comentario más útil

Escribí el tema wedisagree hace un tiempo... ¡Es bueno ver que otros lo usan! Avíseme si necesita actualizarse ya que no he usado zsh por un tiempo.

Todos 3 comentarios

Cuando he visto cosas como esta antes, a menudo ha sido un problema comunicar los anchos de los caracteres a la terminal: los caracteres que no se imprimen (ancho 0) no se escapan correctamente, o la terminal y su fuente no están de acuerdo con el ancho de los caracteres. están.

wedisagree me parece bien en Terminal.app e iTerm2 en OS X 10.9.5. (Excepto por el cambio de RPROMPT alrededor de un par de caracteres al cambiar el tamaño de la terminal).

screen shot 2016-02-04 at 10 24 27 pm

No parece que haya ningún carácter no imprimible sin escape en wedisagree . (A menos que estén ocultos en las variables ZSH_THEME_TIME_SINCE_* ). Estas suelen ser las secuencias de escape de configuración de color. En wedisagree , parece que todos se escaparon correctamente con los escapes %{...%} expansión del indicador zsh.

Podría ser que Terminator piense que algunos de esos caracteres especiales en RPROMPT son más anchos de lo que su fuente cree que son, como ☂, ☀ y 𝝙. Entonces la terminal o curses podrían estar contando mal cuántos caracteres necesita asignar a esa sección RPROMPT y cuántos caracteres necesita para mover el cursor hacia atrás para volver a la ubicación original . El hecho de que el aviso correcto esté alineado a la derecha unos pocos caracteres antes del lado derecho de la terminal es consistente con esto.

Para probar esto, haga una copia personalizada de wedisagree y reemplace esos caracteres con letras regulares en inglés. Están en esta sección . Pruebe también este tema en un par de terminales más y vea cómo se comporta.

Si eso soluciona las cosas, entonces probablemente tenga un desacuerdo de ancho de fuente/terminal. (O un problema con curses o una biblioteca similar). Esto podría ser un problema de configuración o aplicación.

Es posible que tenga su configuración regional configurada para una codificación de un solo byte. Luego, cuando se usan caracteres de varios bytes como esos símbolos especiales, la terminal o la biblioteca de cursores cuentan en exceso cuántos caracteres se muestran. Verifique su salida locale y asegúrese de que sea una configuración regional UTF-8 y que Terminator lo admita. Y verifique que su perfil de Terminator esté configurado para UTF-8, y no para ASCII u otra cosa.

O si está configurado para UTF-8. podría ser que Terminator espere que esos caracteres especiales tengan varias celdas de ancho cuando se muestren. Eso no es algo que pueda arreglar en OMZ o en la configuración; tendrías que reportarlo a Terminator.

¡Así es! La configuración regional de mi terminal estaba equivocada.
Ajuste

export LC_ALL=pt_BR.UTF-8
export LANG=pt_BR.UTF-8

en mi .zshrc resolvió el problema, aunque mi configuración en /etc/locale.gen era correcta.

Escribí el tema wedisagree hace un tiempo... ¡Es bueno ver que otros lo usan! Avíseme si necesita actualizarse ya que no he usado zsh por un tiempo.

¿Fue útil esta página
0 / 5 - 0 calificaciones