LC_CTYPE rompiendo autocompletar: ¿cuál es la causa de este problema?


12

Por alguna razón hoy, cada vez que presiono la pestaña en la terminal, esto aparece:

cat bash: warning: setlocale: LC_CTYPE: cannot change locale (en_CA)

Display all 150 possibilities? (y or n)

Este en particular ocurre cuando escribo y catluego presiono TAB. Nunca cambié ninguna configuración ni nada. Alguien sabe lo que está pasando?


¿Es en_CA(es decir, inglés canadiense) un lugar en el que esperaba estar?
Gilles 'SO- deja de ser malvado'

2
¿Puedes publicar la salida del localecomando?
penguin359

2
¿Está seguro de que en_CAes un entorno local válido (es decir, ambos existen en su sistema y han sido generados por localedefalguna herramienta de generación de entorno local similar)?

Si desea una respuesta correcta, responda la pregunta de @ penguin359 y diga cómo está conectado en su sistema (directamente en la consola o de forma remota con ssho putty.
Dan

Respuestas:


5

Tengo el presentimiento de que algo que bash_completion está haciendo que esto suceda. Intente borrar su finalización de bash temporalmente (hasta que salga) haciendo:

complete -r

Si eso lo aclara, entonces es algo con finalización de bash, de lo contrario, podría ser uno de los integrantes de bash


Intenté esta solución al final, porque las otras parecían una solución más apropiada para un problema que había persistido durante años, pero esta fue la que funcionó.
The Unfun Cat

5

Problema similar al conectarse a través de SSH a un servidor remoto (después de haber instalado oh-my-zsh en mi local, pero no estoy seguro de que sea relevante). Arreglarlo,

En mi máquina local, edité el archivo / etc / ssh / ssh_config, comentando la línea SendEnv

#SendEnv LANG LC_*

La finalización de tabulación ahora funciona sin la advertencia en la máquina remota

bash: advertencia: setlocale: LC_CTYPE: no se puede cambiar la configuración regional


4

Tuve un problema similar en mi servidor ubuntu (FlexiScale) y busqué una solución por un tiempo, pero no pude encontrar nada adecuado ... Todavía no estoy seguro de si lo que hice fue la "forma correcta", pero parece funcionar.

La advertencia que estaba viendo era:

bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8)

Para asegurarme de que las configuraciones regionales estén actualizadas, hice esto (no estoy seguro de si esto era necesario):

# locale-gen --purge

localeen mi sistema mostraba lo LC_CTYPE="UTF-8"que no me parecía bien, así que he cambiado mi /etc/default/localeapariencia para que se vea así:

LANG="en_GB.UTF-8"
LC_CTYPE="en_GB.UTF-8"

(He agregado la segunda línea). Después de volver a iniciar sesión, las advertencias desaparecieron.


3
La fijación LC_CTYPEpara ser un valor válido lo hizo. No es necesario LANG(y de hecho lo recomiendo en contra ). Puede ver los nombres locales válidos en su sistema ejecutando locale -a. En Ubuntu, ejecute sudo localegen xx_YYpara generar el xx_YYentorno local (suponiendo que se pueda generar).
Gilles 'SO- deja de ser malvado'

1

Si recibe un mensaje de error / advertencia similar a este cuando presiona Tab para autocompletar el comando bash:

bash: warning: setlocale: LC_CTYPE: cannot change locale (id_ID.UTF-8)

La solución es:

  1. Instale la configuración regional requerida. En mi caso, este es el "id":

    sudo apt-get install language-pack-id
  2. Reconfigurar locales:

    sudo dpkg-reconfigure locales

Ahora la finalización de bash Tab debería funcionar bien. :-)

Fuente: http://ubuntucomputing.blogspot.com/2011/12/how-to-fix-error-bash-warning-setlocale.html


0

Estaba teniendo el mismo problema. Había probado algunas de las soluciones aquí, pero cuando intenté ejecutar locale-gen, mi sistema dijo que no podía encontrar el comando. Resulta que es parte del localespaquete que no tenía instalado. Así que lo instalé, corrí locales-gen, ¡y ahora funciona!


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.