% VSCode 통합 터미널 출력 후 [중복]

% VSCode 통합 터미널 출력 후 [중복]

따라서 저는 OhMyZsh에서 PowerLevel10k를 사용하여 Arch Linux 설치를 실행하고 있습니다. Visual Studio Code에 SynthWave84 테마가 있는데 통합 터미널에서 프로그램 출력 후 이상한 % 기호가 나타납니다. 내가 찾은 튜토리얼에 따라 모든 것이 구축되었으며 Oh My Zsh로 전환하기 전까지는 모든 것이 괜찮았습니다. 문제의 스크린샷은 다음과 같습니다.

보시다시피 프로그램 출력 뒤에 %가 있습니다. 그럼 어떻게 고치나요?

답변1

이는 최종 출력 라인을 끝내기 위해 개행 문자를 포함하지 않도록 프로그램에 지시하는 ZSH의 방법입니다.

% PS1="someothershellprompt "
someothershellprompt printf "hello world"
hello world%
someothershellprompt PS1='%# '
% 

해결 방법은 프로그램이 최종 개행 문자가 포함된 행을 내보내도록 하는 것입니다. 따라서 귀하의 경우에는 "Hello World!\n"최종 개행 문자를 포함하는 다른 방법을 사용할 수 있습니다.

마지막 줄 바꿈이 없으면 잘못된 코드에서 데이터가 자동으로 손실될 수 있습니다.

% printf "one\ntwo" | while read line; do echo $line; done
one
% 

따라서 항상 마지막 개행 문자를 포함하는 것이 가장 좋습니다(파일이 텍스트 파일이 되려면 POSIX에서 해당 문자가 있어야 함).

(위 루프에는 많은 결함이 있다는 점에 유의하십시오 while. 실제로 쉘, 특히 POSIX 쉘(ZSH는 기본적으로 지원되지 않음)에서 프로그래밍하려는 경우 이러한 결함을 실제로 수정해야 합니다.

printf "one\ntwo\n" |\
while IFS= read -r line || [ -n "$line" ]; do printf '%s\n' "$line"; done

또는 문제가 덜한(그리고 의심할 여지 없이 더 빠른) 라인 처리 기능을 갖춘 프로그래밍 언어로 전환할 수도 있습니다. )

관련 정보