インタラクティブモードでZshに複数行ステートメントを作成するときは、次のように、私が属するブロックタイプをステートメントの前に追加します。
% for i in $(seq 3); do
for> echo $i
for> done
1
2
3
% function foo() {
function> echo bar
function> }
% foo
bar
私は他のコードブロックプレフィックスを見るのがfor>
好きではありません。function>
これらのプレフィックスを抑制する方法を適切に検索するために、これらのプレフィックスが何であるかわかりません。 Bashはまた、文字だけを使ってこれを行います>
が、このパスでは理解できる幸運はありませんでした。 Zshでこれを無効にする方法はありますか?
- 編集する -
ある日、検索エンジンを介してこの問題に直面した人のための$PS2
Zshのデフォルトはです。PS2=%_>
~から文書:
%_
パーサーの状態、つまりコマンドラインから始まるシェル構成(例: "if"や "for")。整数が与えられると、多くの文字列が印刷されます。ゼロまたは負の数または整数がない場合は、できるだけ多くの値を印刷することを意味します。これは、連続行のためにPS2をプロンプトし、XTRACEオプションを使用してデバッグのためにPS4をプロンプトするときに最も便利です。後者の場合、非対話式でも機能します。
承認された回答に基づいて、私は次のPS2設定を完了しました。各ブロックに2つのインデントを追加し、PS1の長さに合わせて最初の2つのスペースを占めます。
PS2='${${${(%):-%_}//[^ ]}// / } '
答え1
PS2
これは、すべてのBourneスタイルシェル(zshを含む)の変数で構成された2番目のプロンプトです。zshから、デフォルトでは、どのシェル構造(ループ、引用符など)が開いているかを示します。%_
早く脱出。バッシュから、デフォルトは>
、エスケープシーケンスを使用できますしかし、それほど有用ではありません。
ヘルパープロンプトが必要ない場合は、空白のままにしてください。
PS2=
このprompt_subst
オプションを有効にすると、各入れ子レベルにスペースを入れることができ、視覚的なフィードバックを提供しますが、端末からコードをコピーできます。
setopt prompt_subst
PS2='${${(%):-%_}//[^ ]} '