%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

あるいは、問題が少ない(そして間違いなくより速い)ライン処理機能を備えたプログラミング言語に切り替えることもできます。 )

おすすめ記事