방금 새로 설치를 통해 Debian 8로 업그레이드했는데 터미널 프롬프트( prompt adam2 8bit
ZSH 사용)가 더 이상 특정 문자를 올바르게 표시하지 않습니다.
$TERM
터미널 인코딩(유니코드 UTF-8로 설정)과 환경 변수(xterm-256color)는 물론 여러 터미널 에뮬레이터와 글꼴을 확인했지만 실제 유니코드 문자를 제공하는 것 하나도 없는 것 같습니다. 또, .zshrc
발송 후 완전히 알몸이 된 경우에도 이런 현상이 발생합니다.
$ autoload -Uz promptinit
$ promptinit
$ prompt adam2 8bit
터미널로 가세요. 내 locale
독서
LANG=en_US.utf8
LANGUAGE=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
답변1
이는 변수에 문제가 있을 가능성이 높습니다 $PS1
. 변수 $PS1
는 파일에 정의되어 있습니다 zshrc
. 이 파일은 프롬프트가 생성될 경우 인코딩(ASCII인 것으로 추정) 정보를 저장하는 /etc/zshrc
변수 에 있습니다 . 가장 먼저 해야 할 일은 현재 상황을 살펴보는 것입니다. 이렇게하려면 터미널에 입력하십시오. 데비안 8 표준 프롬프트$PS1
$PS1
echo $PS1
ZTE예 , 호스트 이름이 무엇이든 %m%#
동일합니다 (제 프롬프트는 입니다 ). 이상한 터미널 프롬프트의 원인은 엉망인 변수일 가능성이 높 으므로 터미널에서 기본 Debian 8 ZSH 프롬프트 유형 으로 다시 변경하십시오 ... 이것은 일시적이며 프롬프트는 종료할 때마다 문자가 재설정된다는 점을 기억하십시오. 터미널. 이 변경 사항을 영구적으로 적용하려면 파일을 열고 추가하세요 . 터미널을 닫았다가 다시 열려면 입력하세요 . 새로운 고정 터미널 프롬프트가 표시되어야 합니다.hostname%
localhost%
$PS1
PS1="%m%#"
/etc/zshrc
PS1="%m%#"
exit
메모
이 지침은 다음에 적용됩니다.ZTE,아니요 세게 때리다! Debian 8에서 bash의 기본 프롬프트 \u@\H: \w $
는 다음과 같습니다 username@hostname: ~ $
(만약 해당 디렉토리에 있었다면 /bin
프롬프트는 다음과 같을 것입니다 bradleysadowsky@localhost: /bin $
). ZSH 프롬프트의 문자는 bash 프롬프트의 문자와 매우 다릅니다. Bash에는 ZSH에 없는 문자가 있으며 그 반대도 마찬가지입니다. 또 다른 주요 차이점은 (대부분) bash 특수 $PS1
문자는 \
백슬래시( )로 시작하는 반면 ZSH에서는(대부분) 특수 $PS1
문자가 퍼센트 기호( %
)로 시작한다는 것입니다. 더 유용한 ZSH 이스케이프 문자의 자세한 목록을 보려면 다음 사이트를 방문하세요.이것웹 페이지. bash의 변수와 bash의 일부 이스케이프 문자에 대한 포괄적인 가이드를 보려면 $PS1
다음을 방문하세요.이것웹 페이지.
마침내
자신만의 프롬프트를 설정하려면 이 이스케이프 문자를 원하는 방식으로 조합하고 /etc/zshrc를 편집하여 프롬프트를 추가하면 됩니다. 유용하고 아름다운 ZSH에 대한 좋은 팁은 [%n@%m] %~>
와 동등하다는 것 입니다 [username@hostname] ~>
. 따라서 저에게는 (제가 주변에 있었다면 /bin
) 입니다 [bradleysadowsky@localhost] /bin>
.