LC_CTYPE이 자동 완성을 중단합니다. 이 문제의 원인은 무엇입니까?

LC_CTYPE이 자동 완성을 중단합니다. 이 문제의 원인은 무엇입니까?

어떤 이유에서인지 오늘은 터미널에서 탭을 클릭할 때마다 다음이 나타납니다.

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

Display all 150 possibilities? (y or n)

이 특별한 상황은 입력한 다음 TAB 키를 누를 때 발생합니다 cat. 저는 설정이나 아무것도 변경한 적이 없습니다. 무슨 일인지 아는 사람 있나요?

답변1

나는 당신의 bash_completion으로 인해 이런 일이 발생했다고 생각합니다. 다음을 수행하여 일시적으로(종료할 때까지) bash를 지워 보십시오.

complete -r

그것이 지워지면 그것은 bash가 하는 일이고, 그렇지 않다면 그것은 아마도 bash 내장 기능 중 하나일 것입니다.

답변2

SSH를 통해 원격 서버에 연결할 때 비슷한 문제가 발생했습니다(oh-my-zsh를 로컬로 설치한 후, 이것이 관련이 있는지 확실하지 않습니다).

이 문제를 해결하기 위해 로컬 컴퓨터에서 파일을 편집 /etc/ssh/ssh_config하고 SendEnv 줄을 주석 처리했습니다.

#SendEnv LANG LC_*

이제 탭 완성이 원격 컴퓨터에서 경고 없이 작동합니다.

bash: 경고: setlocale: LC_CTYPE: 로캘을 변경할 수 없습니다.

답변3

내 우분투 서버(FlexiScale)에서 비슷한 문제가 있었고 한동안 해결책을 검색했지만 적합한 것을 찾을 수 없었습니다. 내가 한 작업이 "올바른" 방법인지는 확실하지 않지만 작동하는 것 같습니다.

내가 보는 경고는 다음과 같습니다.

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

로캘이 최신인지 확인하기 위해 다음을 수행했습니다(필요한지 확실하지 않음).

# locale-gen --purge

locale내 시스템에 표시된 내용이 나에게 적합하지 않아 다음 과 같이 LC_CTYPE="UTF-8"변경했습니다 ./etc/default/locale

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

(두번째 줄을 추가했습니다.) 다시 로그인하니 경고창이 사라졌습니다.

답변4

나는 또한 같은 문제에 직면했습니다. 여기에서 몇 가지 해결 방법을 시도했지만 를 실행하려고 하면 locale-gen시스템에서 명령을 찾을 수 없다는 메시지가 나타납니다. 알고 보니 locales내가 설치하지 않은 패키지의 일부 였습니다 . 그래서 설치하고 실행했더니 locales-gen이제 작동합니다!

관련 정보