serps - Caracteres remanentes al completar la pestaña con ZSH
iconos serp google (5)
Como lo sugiere simont, es probable que el indicador que está utilizando esté utilizando caracteres no imprimibles (como códigos de escape de color) pero no indica que esos caracteres no sean imprimibles. Por lo tanto, cuando se redibuja el indicador, el terminal cree que el indicador es más ancho de lo que realmente es.
Indicas que una secuencia de caracteres en el indicador zsh tiene un ancho de cero utilizando los delimitadores %{
y %}
. Por ejemplo mi mensaje es:
%{%(?.%F{green}.%F{red})%}➜%{%f%}
El (?...)
es un ternario que establece el color de la solicitud y se ha marcado para indicar que tiene un ancho de cero. De la misma manera, %f
restablece el color y eso también se ha marcado.
Puede probar los cambios en su indicador actualizando la variable PS1, de modo que puede probar diferentes arreglos y ver qué funciona para usted.
Puede marcar cualquier carácter de esta manera, así que tenga cuidado de que su mensaje sea demasiado corto.
Estoy usando oh-my-zsh en Arch linux con el tema robbyrussell cargado. Cuando trato de completar la pestaña, termino con los caracteres remanentes anexados al aviso. Si borro los caracteres completados automáticamente, los caracteres remanentes no se eliminan.
Por ejemplo, si escribo:
~ /etc
luego la pestaña, se convierte en
~ /e/etc/
con una lista de opciones a continuación. Incluso si elimino /etc/
, el /e
permanece y estoy atascado con:
~ /e
No puedo borrar el /e
. Tengo que ejecutar un comando para deshacerme del personaje remanente.
¿Alguna idea de lo que está pasando aquí?
Parece que tuve problemas con la configuración regional y la configuración no UTF8
En mi caso la solución fue:
export LC_ALL="en_US.UTF-8"
y manténgalo permanente agregando la línea a .zshrc:
echo "export LC_ALL=en_US.UTF-8" >> .zshrc
Más información en Ubuntu doc https://help.ubuntu.com/community/Locale
Resulta que era un problema de locale. La ejecución de locale-gen no funcionó hasta que eliminé un archivo de configuración en algún lugar y lo reexaminé.
Su consejo es bueno para el aviso sin embargo. Gracias.
Tuve el mismo problema, así que en mi búsqueda de una solución encontré este artículo: https://wiki.archlinux.org/index.php/Locale
Y, como se sugirió, para habilitar alguna configuración regional en todo el sistema, solo necesita descomentar la configuración regional deseada en /etc/locale.gen
, por ejemplo, en mi caso:
en_US.UTF-8 UTF-8
Después de guardar los cambios en el archivo, ejecute (como root) en la línea de comando:
locale-gen
Reinicie, y funciona! (al menos para mi)
Tuve un problema similar, aunque no con oh-my-zsh sino con una línea rápida; Para mí la solución fue eliminar de mi configuración:
ZLE_PROMPT_INDENT=0