web-dev-qa-db-ja.com

猫だけにデフォルトのタブを設定するにはどうすればよいですか?

私はtabs 4を設定することを好みますが、これには次のようないくつかの副作用がある可能性があります たとえば、ls出力が正しく整列されていないように見える場合があります猫専用のタブに4つのスペースを使用するように端末/猫を構成するにはどうすればよいですか?

cattabs 4を設定し、/bin/catを実行してから元に戻すものにエイリアス/ラップする必要がありますか?私の考えでは、実際にはlessdiff、およびその他のユーティリティでこの動作が必要なため、このルートはあまり好ましくありません。

3
dotancohen

Cursesプログラム tabs を使用すると、端末が^Iの幅と見なすものを変更できます。これは簡単なスクリプトになります

tabs -4
cat "$@"
tabs -8

ただし、 tab 端末の文字は不安定なことで有名であり、決してそれらをいじってはいけないという印象があります。次のように expand を使用することをお勧めします。

expand -4 "$@"

これは実際にはあなたが意図しているものに近いです。


コメントへの返信に追加

あまりにも多くのスクリプトがcatを頼りにしています。これは、タブを明示的に変更しない/bin/catを意味します。/bin/catを置き換えるのか、置き換えるのかはわかりませんが、そうすべきではありません。より良いでしょう:

alias tcat='expand -4'

または

function tcat() {
    expand -4 "$@"
}

または類似。

4
msw