• 締切済み

vi でタブの一括置換の方法

はじめまして。 viでプログラミングしています。 自分のユーザーでのタブの設定はスペース8つになっているのですが、 他のユーザー間で設定が共通化されておらず ユーザーによってはガタガタのソースになったりします。 そこでタブをスペース8つに置き換えるように :%s/[TAB]/ /g ※[TAB]はタブキー押下 とするとタブが調整してくれていた間隔を無視して 全て置き換えてしまうのでこちらもガタガタになってしまいます。 タブが調整してくれていた状態をキープしつつ タブをスペースに一発で置換できるようなコマンドをご存知の方、是非教えて下さい。

みんなの回答

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.2

おまけです. :1,$!expand -4 とするなら,私は1行目に移動してから !Gexpand -4 とやります. !「移動コマンド」「外部コマンド」 で,現在の行から移動コマンドの行き先までをstdinとして, 外部コマンドを実行します. きれいな状態で見たいだけなら, 1行目に移動して, !Gcb でいいかもしれません.cbはcのソースを整形コマンドです.

noname#24238
質問者

お礼

お礼遅くなってすみません。 解説までつけていただきありがとうございます。 > !Gcb は便利ですね。さっそく使っています。 ありがとうございました。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

別に空白に置き換えなくても、そろって見えれば良いのですよね? たとえば、4桁単位であれば、 :se tabstop=4 で、OK です。 本当に空白に置き換えたいのだ、ということであれば、外部コマンドでフィルタを かけます。先ほどの例と同じく、4桁単位にするのであれば :1,$!expand -4 です。

noname#24238
質問者

お礼

お礼遅くなってすみません。 > :1,$!expand -4 でばっちりでした。 ありがとうございました。

関連するQ&A