Windowsのzshで各プロンプトの前にパーセント記号が表示されるのはなぜですか?


13

Windowsでzshをセットアップし、すべてのプロンプトのすぐ上の行の最初の文字位置に逆(白地に黒(黒の端末背景))パーセント記号を取得しています。

通常、これは、たとえばcatファイルを-ingするときなど、ファイルの最後に改行がないことを意味します。

私のMacでも、WindowsのMinttyでも起こらない。ただし、ConEmuおよびCMD.EXEが通常実行される標準のターミナルアプリで発生します。

私はすでにunsetすべてのプロンプト文字列precmd()と、通常はプロンプトの上に空白行を追加するために使用しています。

それが何であるかの手がかりはありますか?

回答:


33

関連するオプションはおそらくPROMPT_SP、マニュアルからの説明です

PROMPT_CRオプションが原因でコマンドプロンプトで隠されてしまう部分的な行(つまり、改行で終わらない行)を保存しようとします。これは、部分的な行が存在するときに端末を次の行に折り返す一連のスペースを含むいくつかのカーソル制御文字を出力することによって機能します(これは、端末に自動マージンがある場合にのみ成功することに注意してください) 。

部分的な行が保持されると、デフォルトでは、部分的な行の終わりに逆+太字が表示されます。%通常のユーザーまたは#ルートです。設定すると、シェルパラメータPROMPT_EOL_MARK を使用して、部分的な行の終わりの表示方法をカスタマイズできます。

だから、あなたはどちらか

unsetopt PROMPT_SP

覆われた行を気にしない場合(ただし、あなたの場合%は、最初にサインを取得するため、空の行のようです)。

または使用する

setopt PROMPT_CR
setopt PROMPT_SP
export PROMPT_EOL_MARK=""

これは、部分的な行を保持%しますが、プロンプト上のいくつかの空行を犠牲にして-を削除します。

これを永続的にするには、を更新します~/.zshrc

これはブラインドショットcmd.exeです。この動作をで再現できないためです。


1
@mpyに感謝します。これにより、私はより多くのことを学ぶのにちょうど良い場所にいました。私が思いついたものは次のとおりです。1)3つのことが機能し、オプションを組み合わせるとさらに機能します。unsetopt PROMPT_CR; unsetopt PROMPT_SP; およびPROMPT_EOL_MARK = ""。2)PROMPT_EOL_MARK = ""を設定すると、厄介な逆+太字 "%"文字が削除されますが、追加の改行が追加されるため、プロンプトはminttyやMacとは異なります。3)最終的に、unsetopt PROMPT_SPが最良の妥協案になりました。4)-oオプションを使用しない限り、setおよびunsetの使用は機能しません。setoptとunsetoptが機能します。あなたが修正する場合、私はあなたの答えを受け入れます:)
scanny

@scanny:申し訳ありませんset。もちろん、それはあったはずですsetopt-明らかに、私は速すぎて答えを書きました。私は答えを更新し、空の行についてのポイントも含めようとしました。
mpy

2

だから、zsh + oh-my-zshでまったく同じ問題を抱えていました。

私はmpyとそれらの行の助けを借りて修正しました:

setopt PROMPT_CR

setopt PROMPT_SP

export PROMPT_EOL_MARK = ""

->〜/ .oh-my-zsh / themes / XXXXXXに移動するだけです。oh-my-zshで使用しているテーマを開く必要があります。

このファイルを開いて、ファイルの最後にある3行をコピー/パスします。

そしてその修正!!

良い一日を過ごして、これが一部の人々を助けることを願っています。

平和


回答として「ありがとう」を追加しないでください。サイトに時間をかけると、あなたが好きな答えを投票するのに十分な特権を得ることができます。
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.