즉 특정 기능의 zsh
(그리고 지금 fish
당신이 명확하게 명령의 출력에서 종결되지 않은 줄을 볼 수 있도록뿐만 아니라).
이 터미널 커서를 떠나면 전통적인 쉘에서 명령은, 즉, 마지막 개행 문자 후 일부 데이터를 출력하는 경우, 또는 하지 라인, 마지막 종료되지 않은 줄에 추가까지 쉘 끝으로 다음 프롬프트의 시작 에서와 같이 :
bash-4.4$ printf XXX
XXXbash-4.4$
그것은 프롬프트를 엉망으로 만들며, XXX
특히 당신이 그런 더 멋진 프롬프트를 가지고 있다면 그것을 놓치기 쉽습니다 . 또한 커서 위치에 영향을 미치므로 커서를 움직일 때 디스플레이 결함이 발생합니다.
zsh
출력 %
에 굵은 체와 반전 된 비디오 의 문자 가있는 종료되지 않은 행이 있음을 보여주고 다음 행의 시작 부분에 다음 프롬프트를 표시합니다.
zsh-5.1.1$ printf XXX
XXX%
zsh-5.1.1$
모든 명령 %
이 끝날 때 (각 프롬프트 전에) 리버스 비디오 를 출력 하지만 79 개의 공백 (80 자 너비의 터미널로 가정), CR 문자 (커서가 첫 번째 커서로 돌아가는 문자) 열) 및 줄 끝까지 지우는 순서 (및 프롬프트).
이렇게하면 종료되지 않은 행이있는 경우 커서가 첫 번째 위치에 있지 않기 때문에이 80자를 사용하면 커서가 다음 행으로 이동합니다 (그리고 %
계속 유지됨). 그렇지 않다면, 그 %
공간과 그 79 개의 공간은 한 줄에있게되고 나중에 삭제 될 것입니다.
이제 터미널이 줄 바꿈을 수행하는 경우에만 작동합니다 (예 : 이후에 제대로 작동하지 않음 tput rmam
). 속도가 느린 터미널 (예 : 9600 보드 직렬 회선)이있는 경우 실제로 %
각 명령 후에 표시되고 제거 된 것을 볼 zsh
수 있으므로 해당 기능을 비활성화 할 수 있습니다.
unsetopt prompt_cr prompt_sp
그렇게하면 zsh
전통적인 껍질과 비슷하게 행동합니다.
$PROMPT_EOL_MARK
변수를 사용하여 해당 마크를 변경할 수도 있습니다 .
print -n "this is a test"
다음을 수행하십시오. thenprint "this is a test"