- 締切済み
vi でタブの一括置換の方法
はじめまして。 viでプログラミングしています。 自分のユーザーでのタブの設定はスペース8つになっているのですが、 他のユーザー間で設定が共通化されておらず ユーザーによってはガタガタのソースになったりします。 そこでタブをスペース8つに置き換えるように :%s/[TAB]/ /g ※[TAB]はタブキー押下 とするとタブが調整してくれていた間隔を無視して 全て置き換えてしまうのでこちらもガタガタになってしまいます。 タブが調整してくれていた状態をキープしつつ タブをスペースに一発で置換できるようなコマンドをご存知の方、是非教えて下さい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- wolv
- ベストアンサー率37% (376/1001)
回答No.2
おまけです. :1,$!expand -4 とするなら,私は1行目に移動してから !Gexpand -4 とやります. !「移動コマンド」「外部コマンド」 で,現在の行から移動コマンドの行き先までをstdinとして, 外部コマンドを実行します. きれいな状態で見たいだけなら, 1行目に移動して, !Gcb でいいかもしれません.cbはcのソースを整形コマンドです.
- a-kuma
- ベストアンサー率50% (1122/2211)
回答No.1
別に空白に置き換えなくても、そろって見えれば良いのですよね? たとえば、4桁単位であれば、 :se tabstop=4 で、OK です。 本当に空白に置き換えたいのだ、ということであれば、外部コマンドでフィルタを かけます。先ほどの例と同じく、4桁単位にするのであれば :1,$!expand -4 です。
質問者
お礼
お礼遅くなってすみません。 > :1,$!expand -4 でばっちりでした。 ありがとうございました。
お礼
お礼遅くなってすみません。 解説までつけていただきありがとうございます。 > !Gcb は便利ですね。さっそく使っています。 ありがとうございました。