(문제를 표시하는 데 있어 Emacs의 역할을 명확히 하기 위해 편집되었습니다.)
현재 gnu-screen
세션이 손상되어 Emacs가 UTF-8 문자를 올바르게 표시할 수 없습니다.
Emacs가 새로 시작된 프로세스 gnu-screen
에서 UTF-8 문자를 올바르게 표시한다는 것을 확인했지만 현재 gnu-screen
손상된 세션을 새 세션으로 바꾸는 것은 매우 지장을 줄 수 있습니다.
저는 이 손상된
gnu-screen
세션 문제를 더 해결하기 위해 노력하고 있으며 이를 고칠 수 있기를 바랍니다.
FWIW, 문제를 진단하기 위해 지금까지 수행한 작업에 대한 설명을 포함하여 아래에 더 많은 배경 정보를 제공했습니다.
gnu-screen
저는 며칠 전에 사무실에서 이 강좌를 시작했습니다.운영 체제워크스테이션
% screen -U
...(항상 그랬듯이). 그 이후로 나는 여러 컴퓨터에서 이 세션을 다시 연결했습니다(아마 ssh
내가 일하는 워크스테이션에 처음 연결한 후일 것입니다).
% screen -U -dR
(다시 말하지만, 이것이 제가 항상 하는 일입니다.) 나는 오늘 아침 내 워크스테이션(프로세스가 실제로 실행되는 컴퓨터)에서 gnu-screen
정확히 이 작업을 수행했습니다 .
오늘은 이 세션을 만든 이후 처음으로 gnu-screen
ASCII가 아닌 UTF-8 문자가 많이 포함된 파일을 처리해야 했습니다. 그때 나는 이 gnu-screen
세션이 이러한 문자를 모두 표시하여 ?
디스플레이를 사용할 수 없게 만들기 때문에 어떤 방식으로든 손상되어야 한다는 것을 알아냈습니다.
(이미 언급했듯이 이러한 UTF-8 리치 파일은 새로 시작된 세션에서 올바르게 표시되므로 여기서는 "손상"이라고 부르는 특정 세션 gnu-screen
에 표시 문제가 있는 것이 확실합니다 . 또한 " 표시를 확인합니다. "가 세션을 연결하는 모든 터미널에 나타나므로 문제는 세션을 호스팅하는 터미널 프로그램에 있는 것이 아닙니다.gnu-screen
???
gnu-screen
gnu-screen
반품문제가 특정 Emacs 세션에 있지 않은지 확인하십시오. 손상된 gnu-screen
세션 에서모든?
새로운 Emacs 세션은 특정 Emacs 세션의 문제와 관련된 UTF-8 문자를 로 표시합니다 . )
나는 이것을 실행 utf8
하여 확인했습니다.on
:utf8 on on
의 출력은 :info
다음과 같습니다
(1,5)/(210,52)+10000 +(-)flow app log UTF-8 0(zsh)
그리고, FWIW:
% /usr/local/bin/screen --version
Screen version 4.00.03 (FAU) 23-Oct-06
또한, 나는 그것을 지적해야한다새로운
이 문제를 해결하려면 또 어떻게 해야 합니까?
고쳐 쓰다:Drav Sloan과 Stephane Chazelas는 둘 다 내 지역에 대해 물었습니다.
% locale
LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
현재 OS XI의 경우 로케일 관련 변수가 설정되지 않습니다.
Linux 시스템에서 내 .zshenv
설정은 다음과 같습니다.
export LANG=en_US.utf8
export LC_ALL=en_US.utf8
...하지만 Darwin의 .zshenv에 같은 줄을 넣으면 "로케일 설정 실패"라는 오류 메시지가 나타납니다. 나는 Darwin/Lion에 적합한 장소를 찾으려고 몇 시간 동안 머리를 부딪혔던 것을 막연하게 기억합니다. "아무것도 설정하지 않음"은 아마도 문제에 대한 "가장 최악의" 해결책일 것입니다. 결국 gnu-screen
적어도 새 세션은 명시적인 로케일 없이도 UTF-8 문자를 올바르게 표시합니다. 하지만 분명히 Darwin/Lion에서 로케일을 올바르게 설정하는 방법을 알아내야 합니다...
업데이트 2: 좋습니다. 위에서 언급한 오류의 원인을 찾은 것 같습니다. Darwin/Lion에서는 문자열이 en_US.utf8
유효하지 않습니다. 대신 en_US.UTF-8
.
답변1
실행할 때 동일한 문제가 발생했습니다.
git clone https://github.com/jwiegley/git-scripts.git
cd git-scripts
perl git-forest
나는 이것을 테스트로 사용했습니다. 기본적으로 utf8을 올바르게 설정하면 멋진 라인을 얻을 수 있습니다. 그렇지 않으면 보기 흉한 상자나 문자가 표시됩니다.
해결책은 다음 LC_ALL
과 같이 설정해야한다는 것입니다.en_US.UTF-8
앞으로새로운 화면 세션을 시작합니다. 스크린 세션을 만든 후 이 작업을 수행하는 데 지쳤지만 행운이 없습니다.
이를 달성하기 위해 수행한 단계는 다음과 같습니다.
1)locale
현재 설정을 보려면 실행하세요 . 나는 이것을 얻었습니다(내가 문제를 겪고 있는 이유를 설명합니다:
LANG=en_US.UTF-8
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C
2)LC_ALL
새 화면 세션을 생성하기 전에 재정의 해야 합니다.en_US.UTF-8
csh
쉘을 사용하는 경우
setenv LC_ALL en_US.UTF-8
bash
쉘을 사용하는 경우
export LC_ALL="en_US.UTF-8"
삼) 다음을 다시 실행하여 LC_ALL
설정이 올바른지 확인하십시오 locale
.
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
4)이제 새 스크린 세션을 실행하고 git-forest
테스트를 실행하면 멋진 라인이 보일 것입니다.