GUI端末でタブ幅を設定する

GUI端末でタブ幅を設定する

私は見つけた

setterm -regtabs 4

xtermまたはurxvtでは機能しません。

しかし、これは

xterm_set_tabs () { 
  TERM=linux;
  export $TERM;
  setterm -regtabs 4
}

問題を回避します。

しかし、私はこれが次善策だと思います。なぜなら(1)他に説明できないgfxのバグにぶつかったからです(少なくとも正しいタブの内容を得れば可能性は排除されます)。学校SolarisにSSHでアクセスして実行しましたが、emacs -nw「linux」がわからないというメッセージが出ました!だからもう一度「xterm」に置き換える必要があります。もちろん、常に同じ端末を使用しているので、これは愚かなことです。

また、タブにまったく依存しないのは良い経験則です!

ベストアンサー1

このsettermユーティリティは、Linuxコンソールで使用するように設計されています。 ~によるとconsole_codes のマニュアルページ:

Linuxコンソールは、VT102およびECMA-48 / ISO 6429 / ANSI X3.64ターミナルコントロールのほとんどのサブセットだけでなく、カラーパレット、文字セットマッピングなどを変更するための特定のプライベートモードシーケンスも実装しています。

~からプログラムがハードコードされています。

/* -regtabs. */
if (ctl->opt_regtabs && vc_only(ctl, "--regtabs")) {
    int i;

    fputs("\033[3g\r", stdout);
    for (i = ctl->opt_rt_len + 1; i <= TABS_MAX; i += ctl->opt_rt_len)
        printf("\033[%dC\033H", ctl->opt_rt_len);
    putchar('\r');
}

xtermが実装しているので、xtermで動作します。VT100コントロール(およびその他)

については大規模サブセット、これは議論の余地があります。プロジェクトをすばやく計算すると、console_codes79の制御シーケンスが表示されます。これは、xterm FAQで文書化されたxtermのようなものよりはるかに低いです。数制御を使用したバージョンの比較。 79はそれ自体ではそれほど大きくありません。 VT102自体(xtermに似ています)には104があります。 ISO-6429(別名ECMA-48)は20のパターンと162のシーケンスを記録しました。合計が182であれ162であれ、50%はそうではありません。大規模サブセット

Linuxコンソールユーティリティを使用することに加えて、より移植可能なオプションがあります:tabsユーティリティ(POSIXそしてソラリス)。それncursesユーティリティ(おそらくLinuxシステムにインストールされているでしょう)。

質問に提供されている例では、次のようにできます。

tabs -4

ハードコーディングの代わりにターミナルデータベースを使用します。タブとそれを設定する制御シーケンスは、ECMA-48および他の場所に文書化されています。用語情報(5)マンページ。

そしてtabsxtermで使用されます。

おすすめ記事