Untuk beberapa alasan hari ini, setiap kali saya menekan tab di terminal, ini muncul:
cat bash: warning: setlocale: LC_CTYPE: cannot change locale (en_CA)
Display all 150 possibilities? (y or n)
Yang satu ini terjadi ketika saya mengetik cat
lalu tekan TAB. Saya tidak pernah mengubah pengaturan atau apa pun. Ada yang tau apa yang terjadi?
bash
autocomplete
locale
Keanehan TAB
sumber
sumber
en_CA
(mis. Bahasa Inggris Kanada) tempat Anda diharapkan berada?locale
perintah?en_CA
adalah lokal yang valid (yaitu, keduanya ada di sistem Anda, dan telah dibuat olehlocaledef
atau beberapa alat generasi lokal yang serupa)?ssh
atauputty
.Jawaban:
Saya punya firasat bahwa sesuatu yang bash_completion Anda menyebabkan ini terjadi. Coba hapus penyelesaian bash Anda sementara (sampai Anda keluar) dengan melakukan:
Jika itu membersihkannya maka itu adalah sesuatu dengan selesai bash, jika tidak masih mungkin salah satu built-in bash
sumber
Masalah serupa ketika menghubungkan melalui SSH ke server jarak jauh (setelah menginstal oh-my-zsh di lokal saya, tapi saya tidak yakin itu relevan). Untuk memperbaikinya,
Di komputer lokal saya, saya mengedit file / etc / ssh / ssh_config, mengomentari baris SendEnv
Penyelesaian tab sekarang berfungsi tanpa peringatan pada mesin jarak jauh
sumber
Saya mempunyai masalah yang sama pada server ubuntu saya (FlexiScale) dan mencari solusi untuk sementara waktu tetapi tidak dapat menemukan sesuatu yang cocok ... Masih tidak yakin apakah yang saya lakukan adalah "cara yang benar", tetapi tampaknya berhasil.
Peringatan yang saya lihat adalah:
Untuk memastikan bahwa lokasi setempat terkini, saya melakukan ini (tidak yakin apakah ini perlu):
locale
pada sistem saya ditampilkanLC_CTYPE="UTF-8"
yang tidak cocok untuk saya, jadi saya mengubah saya/etc/default/locale
menjadi seperti ini:(Saya telah menambahkan baris kedua.) Setelah login ulang, peringatan telah hilang.
sumber
LC_CTYPE
menjadi nilai yang valid melakukannya. Anda tidak perluLANG
(dan sebenarnya saya sarankan menentangnya ). Anda dapat melihat nama lokal yang valid di sistem Anda dengan menjalankanlocale -a
. Di Ubuntu, jalankansudo localegen xx_YY
untuk menghasilkanxx_YY
lokal (dengan asumsi itu dapat dihasilkan).Jika Anda mendapatkan pesan kesalahan / peringatan yang serupa dengan ini ketika tekan Tab untuk pelengkapan otomatis perintah bash:
Solusinya adalah:
Instal lokal yang diperlukan. Dalam kasus saya ini adalah "id":
Konfigurasi ulang lokal:
Sekarang, penyelesaian bash Tab seharusnya bekerja dengan baik. :-)
Sumber: http://ubuntucomputing.blogspot.com/2011/12/how-to-fix-error-bash-warning-setlocale.html
sumber
Saya mengalami masalah yang sama. Saya telah mencoba beberapa solusi di sini, tetapi ketika saya mencoba untuk menjalankan
locale-gen
, sistem saya mengatakan tidak dapat menemukan perintah. Ternyata itu adalah bagian darilocales
paket yang tidak saya instal. Jadi saya menginstalnya, berlarilocales-gen
, dan sekarang berfungsi!sumber
Dipecahkan secara permanen dengan membuat file
Dengan konten
Lihat jawaban di github
sumber