LC_CTYPE otomatik tamamlama: bu sorunun nedeni nedir?


12

Bazı nedenlerden dolayı, terminaldeki sekmeye her bastığımda, bu ortaya çıkıyor:

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

Display all 150 possibilities? (y or n)

Bu özel catyazdıktan sonra SEKME tuşuna bastığımda olur. Hiçbir ayarı veya hiçbir şeyi değiştirmedim. Neler olup bittiğini bilen var mı?


en_CA(yani Kanadalı İngilizce) İçinde olması beklenen bir yerel?
Gilles 'SO- kötü olmayı bırak'

2
localekomutun çıktısını gönderebilir misiniz ?
penguin359

2
Bunun en_CAgeçerli bir yerel ayar olduğundan (yani, her ikisi de sisteminizde mevcut olduğundan ve localedefbenzer bir yerel ayar oluşturma aracı tarafından oluşturulduğundan ) emin misiniz?

Eğer bir doğru cevabı istiyorsanız, @ penguin359 gelen soruyu cevaplamak ve doğrudan konsolda (sisteminizde bağlı veya uzaktan ile nasıl söyle sshya putty.
dan

Yanıtlar:


5

Ben senin bash_completion bir şey bu olmasına neden olduğunu bir önsezi var. Aşağıdakileri yaparak bash tamamlamanızı geçici olarak (siz çıkıncaya kadar) temizlemeyi deneyin:

complete -r

Bu onu temizlerse, o zaman bash tamamlama ile bir şey, eğer değilse hala bash yerleşiklerinden biri olabilir


Bu çözümü en son denedim, çünkü diğerleri uzun yıllar devam eden bir soruna daha uygun bir çözüm gibi görünüyordu, ancak bu işe yaradı.
The Unfun Cat

5

SSH üzerinden uzak bir sunucuya bağlanırken benzer sorun (yerel olarak oh-my-zsh yükledikten sonra, ancak bunun ilgili olduğundan emin değilim). Tamir etmek için,

Yerel makinemde, / etc / ssh / ssh_config dosyasını düzenledim, SendEnv satırını yorumladım

#SendEnv LANG LC_*

Sekme tamamlama artık uzak makinede uyarı yapılmadan çalışıyor

bash: uyarı: setlocale: LC_CTYPE: yerel ayarı değiştiremez


4

Ubuntu sunucumda (FlexiScale) benzer bir sorun yaşadım ve bir süre bir çözüm aradım ama uygun bir şey bulamadım ... Yaptığım şeyin "doğru yol" olup olmadığından emin değilim, ama işe yarıyor gibi görünüyor.

Gördüğüm uyarı şuydu:

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

Yerliler güncel olduğundan emin olmak için bunu yaptım (bu gerekli olup olmadığından emin değilim):

# locale-gen --purge

localebenim sistemime LC_CTYPE="UTF-8"hangi bana doğru görünmüyordu gösteriyordu , bu yüzden benim /etc/default/localegibi görünmek için değiştirdim :

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

(İkinci satırı ekledim.) Tekrar giriş yaptıktan sonra uyarılar kayboldu.


3
LC_CTYPEGeçerli bir değer olarak düzeltmek bunu yaptı. İhtiyacınız yok LANG(ve aslında buna karşı öneriyorum ). Çalıştırarak sisteminizdeki geçerli yerel ayarları görebilirsiniz locale -a. Ubuntu'da, yerel ayarı sudo localegen xx_YYoluşturmak için çalıştırın xx_YY( oluşturulabileceği varsayılarak).
Gilles 'SO- kötü olmayı kes

1

Bash komutunun otomatik tamamlanması için Sekme tuşuna bastığınızda buna benzer hata / uyarı mesajı alırsanız:

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

Çözüm:

  1. Gerekli yerel ayarı yükleyin. Benim durumumda bu "id":

    sudo apt-get install language-pack-id
  2. Yerel ayarları yeniden yapılandırın:

    sudo dpkg-reconfigure locales

Şimdi bash Tab tamamlama gayet iyi çalışmalıdır. :-)

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


0

Aynı sorunu yaşıyordum. Burada bazı çözümleri denemiştim, ama çalıştırmayı denediğimde locale-gen, sistemim komutu bulamadığını söyledi. Görünüşe göre bu localespaketin yüklemediğim bir parçası . Bu yüzden kurdum, koştum locales-genve şimdi çalışıyor!


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.