Windows에서 zsh에 대한 각 프롬프트 앞에 백분율 기호가 나타나는 이유는 무엇입니까?


12

Windows에서 zsh을 설치하고 모든 프롬프트 바로 위의 줄에서 첫 번째 문자 위치에 백분율 기호 (역 자주 : 흰색 (검은 색 터미널 배경)에 검은 색)가 나타납니다.

일반적으로 파일 끝 부분에 개행 문자가 없음을 의미합니다. 예를 들어 cat - 파일.

내 Mac이나 Windows의 Mintty에서도 발생하지 않습니다. 그러나 그것은 ConEmu와 CMD.EXE가 일반적으로 실행되는 표준 터미널 응용 프로그램에서 발생합니다.

나는 벌써 unset 내 모든 프롬프트 문자열뿐만 아니라 precmd() 나는 일반적으로 프롬프트 위에 빈 줄을 추가하는 데 사용합니다.

어떤 단서가 될 수 있니?

답변:


23

관련 옵션은 아마도 PROMPT_SP, 설명서의 설명

부분 행 (즉, 끝나지 않은 행)을 보존하려고 시도합니다.   그렇지 않으면 newline으로)                 PROMPT_CR 옵션으로 인해 명령 프롬프트에 표시되지 않습니다. 이것은 일부 커서 제어를 출력하여 작동합니다.                 일련의 공백을 포함하여 부분적으로 줄을 감쌀 때 터미널을 다음 줄로 감싸는 문자                 줄이 있습니다 (터미널에 자동 여백이있는 경우에만 성공합니다).

부분 행이 보존되면, 기본적으로 부분 행 끝에 역 + 굵은 문자가 나타납니다. % 일반 사용자 또는 # 루트. 설정된 경우 쉘 매개 변수 PROMPT_EOL_MARK 될 수있다.                 부분 선의 끝이 표시되는 방식을 사용자 정의하는 데 사용됩니다.

그래서, 당신은

unsetopt PROMPT_SP

은폐 된 라인에 대해 신경 쓰지 않는다면 (그러나 귀하의 경우에는 빈 라인 인 것처럼 보입니다. % 시작 부분에 서명).

또는 사용

setopt PROMPT_CR
setopt PROMPT_SP
export PROMPT_EOL_MARK=""

부분 선은 보존되지만 % - 프롬프트에 비해 빈 줄을 들려서.

이 항목을 영구히 유지하려면 ~/.zshrc.

이 동작을 재현 할 수 없기 때문에 이것은 맹목적입니다. cmd.exe.


1
고마워요 .mp3,이게 저에게 더 많은 것을 알기에 적합한 장소에 올려 놓았습니다. 여기에 내가 생각해 낸 점이 있습니다 : 1) 세 가지가 작동합니다. 옵션을 결합하면 더 많이 작동합니다 : unsetopt PROMPT_CR; unsetopt PROMPT_SP; 및 PROMPT_EOL_MARK = "". 2) PROMPT_EOL_MARK = ""설정은 성가신 반전 + 굵은 "%"문자를 없애지 만 추가 줄 바꿈을 추가하므로 프롬프트는 민트 티 또는 Mac과 다릅니다. 3) 최선의 타협안으로 unsetopt PROMPT_SP를 사용했다. 4) set과 unset을 사용하면 -o 옵션을 사용하지 않으면 작동하지 않습니다. setopt 및 unsetopt 작업. 당신이 고칠 수 있다면 당신의 대답을 받아 들일 것입니다 :)
scanny

@scanny : 나는 사과해야한다. set. 물론, setopt - 분명히 내 대답을 너무 빨리 썼다. 내 대답을 업데이트하고 빈 줄에 대한 요점도 포함하려고했습니다.
mpy

2

그래서 나는 내 zsh + oh-my-zsh와 똑같은 문제를 겪고 있었다.

나는 mpy와 그 라인의 도움으로 해결했다.

setopt PROMPT_CR

PROMPT_SP 설정

내보내기 PROMPT_EOL_MARK = ""

- & gt;로 가야합니다. ~ / .oh-my-zsh / themes / XXXXXX 당신은 oh-my-zsh에서 사용하고있는 주제를 열어야합니다.

이 파일을 열고 파일 끝에이 세 줄을 복사 / 붙여 넣기하십시오.

그리고 그것의 고정 !!

희망을 가지고 좋은 하루 보내세요. 그러면 사람들이 도움이 될 것입니다.

평화


답변으로 "감사"를 추가하지 마십시오. 사이트에 시간을 투자하면 충분한 수익을 얻을 수 있습니다. 특권 당신이 좋아하는 대답을 upvote하는 것입니다. 그것은 슈퍼 유저가 당신에게 감사하다는 말입니다.
DavidPostill

0

당신은 ConEmu 내부에 mintty를 실행할 수 있습니다. 그게 저에게 백분율을 없애 버렸습니다.

다음은 작업 매개 변수에 대한 것입니다.

/icon "%ConEmuDrive%\msys64\msys2.ico"

명령 :

set CHERE_INVOKING=1 & %ConEmuDrive%\\msys64\usr\bin\mintty.exe -i "%ConEmuDrive%\msys64\msys2.ico" -
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.