Zsh - コマンドのタブ幅を変更する方法

Zsh - コマンドのタブ幅を変更する方法

ZSHの単一行と複数行のコマンドでインデントのタブ幅を変更するには?これはリテラルタブ文字と同じではありません。 ZSHは実際にTabキーを押すと端末に空白を表示します。

zsh -f # Run without config
blackcap% echo $'\t.'
        .
blackcap%       .
blackcap% if
if>     .
blackcap% tabs 4
blackcap% echo $'\t.'
    .
blackcap%       .
blackcap% if
if>     .

この動作は端末エミュレータの設定やsetterm --regtabsIFSman zshparam

明らかに自分のバージョンを作成してタブにバインドすることはできますが、カーソルが移動すると行が変わり、2行以上があるため、この最後の手段はすぐに複雑になります。>>vi A コアフレンドを使うことは言うまでもありません。

答え1

ZLEはプロンプト文字列のタブ文字と入力コマンドラインを表示された空白に展開します。拡張は8列ごとに固定されたタブ停止計算を使用し、端末に実際のTAB文字を発行することと端末の実際のタブ停止設定を含みません。右カーソルを移動するためのショートカットとしてTABを使用すると、terminfo / termcapデータベースがパラメータ化されたカーソルに制御順序がないことを知らせるときに同じ前提があります。 (はいはいはい)

ラベルがあるのは幸運です。通常、settermLinux KVTを駆動する組み込みLinuxターミナルエミュレータ以外のターミナルエミュレータではutil-linuxを使用しないでください。バラよりhttps://unix.stackexchange.com/a/491883/5132Linux 内蔵端末エミュレータの制御シーケンスをハードコードしないポータブルワーク型プログラムです。

答え2

stty -a端末設定でハードウェアタブを使用するかどうかが表示されます(ここではできるプログラム済み)またはそうでない(探しているtab0出力から)。

zshハードコードすることができます。settermもちろんそうです(参照これ)。端末がハードウェアタブに設定されている場合は動作します。しかし、tabsこのプログラムはハードコードされておらず、コンピュータにインストールすることもできます。

ここに画像の説明を入力してください。

関連情報