LC_CTYPE quebra do autocomplete: qual é a causa desse problema?

11

Por alguma razão hoje, toda vez que eu clico em tab no terminal, isso aparece:

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

Display all 150 possibilities? (y or n)

Este em particular acontece quando eu digito cat e depois pressiono TAB. Eu nunca mudei qualquer configuração ou qualquer coisa. Alguém sabe o que está acontecendo?

    
por TAB Weirdness 03.05.2011 / 08:01

5 respostas

4

Eu tive problema semelhante no meu servidor Ubuntu (FlexiScale) e procurei por uma solução por um tempo, mas não consegui encontrar nada adequado ... Ainda não tenho certeza se o que eu fiz é o "caminho certo", mas parece para trabalhar.

O aviso que eu estava vendo era:

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

Para garantir que as localidades estejam atualizadas, fiz isso (não sei se isso era necessário):

# locale-gen --purge

locale no meu sistema estava exibindo LC_CTYPE="UTF-8" , o que não parecia certo para mim, então mudei meu /etc/default/locale para ficar assim:

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

(Adicionei a segunda linha.) Depois de fazer o login novamente, os avisos foram eliminados.

    
por 04.08.2011 / 11:17
4

Problema semelhante ao conectar via SSH a um servidor remoto (depois de ter instalado oo-meu-zsh no meu local, mas não tenho certeza se isso é relevante). Para corrigir isso,

Na minha máquina local, eu editei o arquivo / etc / ssh / ssh_config, comentando a linha SendEnv

#SendEnv LANG LC_*

A conclusão da tabulação agora funciona sem o aviso na máquina remota

bash: warning: setlocale: LC_CTYPE: cannot change locale

    
por 20.02.2012 / 12:51
3

Tenho um palpite de que algo que o seu bash_completion está fazendo com que isso aconteça. Tente limpar a conclusão do bash temporariamente (até você sair) fazendo:

complete -r

Se isso for esclarecido, então é algo com a conclusão do bash, se não, ainda pode ser um dos built-ins bash

    
por 12.07.2011 / 02:28
1

Se você receber uma mensagem de erro / aviso semelhante a esta quando pressionar Tab para autocompletar o comando bash:

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

A solução é:

  1. Instale o local necessário. No meu caso, esse é o "id":

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

    sudo dpkg-reconfigure locales
    

Agora a conclusão da guia bash deve funcionar bem. : -)

Fonte: link

    
por 01.12.2011 / 12:01
0

Eu estava tendo o mesmo problema. Eu tentei algumas das soluções aqui, mas quando tentei executar locale-gen , meu sistema disse que não poderia encontrar o comando. Acontece que é uma parte do pacote locales que eu não instalei. Então eu instalei, corri locales-gen , e agora funciona!

    
por 17.01.2012 / 16:18