VIMではset tabstop=4
のように見えますが、設定方法がわかりませんbash
例えば:
echo -e "1234567890\t321\n1\t2\n123\t1"
現在の出力:
1234567890 321
1 2
123 1
次のような出力が必要です。
1234567890 321
1 2
123 1
cat somefile
やphp -r 'echo "\t123";'
のように、どこにでも表示できます
Bashでタブ幅を設定するにはどうすればよいですか?
これはシェル(またはphpやcat)のプロパティではありません。出力を管理するのは端末です。
tabs
コマンドを使用して動作を変更します。
$ tabs 4
$ echo -e "a\tb"
a b
$ tabs 12
$ echo -e "a\tb"
a b
(tabs
はPOSIXで指定されており、上記の出力は「偽装」されています。2つの文字の間のタブ文字のままです。)
tabs
ユーティリティを使用して、定期的または不定期の間隔を設定できます。 cat
を使用して既にタブが含まれているファイルを出力するか、自分で制御しないプログラムの出力を使用して、独自の出力を行うかどうかに関係なく機能します。
ただし、出力を制御している場合は、printf
ではなくecho
を使用し、タブではなくフォーマット文字列を使用することをお勧めします。
$ printf '%-12s%8.4f %-8s%6.2f\n' 'Some text' 23.456 'abc def' 11.22
Some text 23.4560 abc def 11.22
$ format='%*s%*.*f %*s%*.*f\n'
$ printf "$format" -12 'Some text' 8 4 23.456 -8 'abc def' 6 2 11.22
Some text 23.4560 abc def 11.22
他の誰かがtabs
ユーティリティを使用してプログラムの出力を制御できるようにしたい場合を除きます。
Settermを使用してこれを設定できます
setterm -regtabs 4
私はそれを自分の.bash_profileに入れましたが、特にbash関連ではありません