こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

UNIX標準出力で表示されるタブの幅について

UNIX標準出力で表示されるタブの幅について

標準出力で表示されるタブの幅がデフォルトで8に設定されているのですが、
これを変更することはできないでしょうか?

Cソースなどをタブの幅4でインデントを揃えているのですが
このCソースをdiffコマンドなどで標準出力に出力すると
タブが自動的に8で表示されてしまい非常に見づらいので
変更する方法を調べているのですが、さっぱりわかりません。

どなたかご存知の方いらっしゃいませんでしょうか?
ちなみにシェルはcshです。
宜しくお願いいたします。

投稿日時 - 2010-06-04 01:04:10

QNo.5943344

困ってます

質問者が選んだベストアンサー

タブストップを設定できるタイプの端末 (ほとんどの端末エミュレータで設定できるでしょう) なら、
 tabs -4
を実行する(~/.cshrcに書いてもよい) と端末設定が4タブになるはずです。

ただし、この設定すると、確かに cat textfile.txt のようにして表示した場合には4タブになりますが、more や vi は、タブストップを独自の設定(デフォルトは8タブ) に従ってスペースに変換して表示してしまいます。その場合は、expand コマンドで、タブを4タブ前提でスペースに変換し、表示するのでもいいでしょう。

 expand -t 4 textfile.txt | more


ちなみに等間隔でないタブストップを設定することもできます。
 tab 3,10,29,50
または
 expand -t 3,10,29,50
とすればカラム3,10,29,50 にタブストップが設定されます。

参考URL:http://docs.sun.com/app/docs/doc/819-1210/tabs-1?l=ja&a=view

投稿日時 - 2010-06-05 02:34:21

お礼

お礼が遅くなりスミマセンでした。

教えていただいたtabsコマンドを実行してみたのですが、
その後に実行したdiffやcatの表示結果は8のままでした。

何故なのでしょうか?

投稿日時 - 2010-06-08 00:28:18

このQ&Aは役に立ちましたか?

42人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

普通に考えたらターミナルの設定でなんかするんじゃないかなぁ?

投稿日時 - 2010-06-04 02:12:30

お礼

お礼が遅くなってしまいスミマセンでした。

ターミナル?はteratermを使っていますが、
そのような設定はなかったと思います。

投稿日時 - 2010-06-08 00:25:48

あなたにオススメの質問