TrickLibrary
  1. http://tricklib.com/
  2. cxx/
  3. ex/
  4. tabform/

tabform

about tabform

ハードタブ⇔ソフトタブ変換を行うコマンドラインツールです。

このツールは対象のテキストファイルがSJISであることが前提です。(インデントのみを処理する場合は EUC や UTF-8 でも問題ないでしょうけど。)

Wraith the Trickster

最近、ハードタブ派からソフトタブ派に改宗したので必要に迫られてこのツールを作ってみました。この手のモノをC++で作ることは微妙に間違っている気がしないでもないですが、自分はC++馬鹿なんでヨシとしておきます。

公開にあたり少しはリファクタリングもしましたけど、元々目的が果たせればそれでいいや的なノリで作ってるんでかなりいい加減な作りですし、その目的も果たせているのでなにか問題でもない限り今後改良することもないと思います。

2007-07-19 ソフトタブからハードダブへの変換を行った際に非インデント部での変換が不正確になる(タブ文字がひとつ欠ける)ケースがあったので修正。

ハードタブとソフトタブ

どっちがどっちだっけ?って言う人も多いでしょうし...てか、自分がすぐにどっちがどっちか忘れちゃうんでメモしておきます。

ハードタブ
タブ文字でインデントを形成することです。
ソフトタブ
タブ文字の変わりに半角スペース文字でインデントを形成することです。
Wraith the Trickster

この十数年、私はずっとハードタブ派でしたが、ハードタブの利点であるハズの自分の好きなタブ幅でテキストファイルを見れるという点が自分のスタイルでは全然活きてない(所定のタブ幅以外では表示が崩れる)ので、「やっぱソフトタブのほうがいんじゃね?」と思い直し改宗しました。 このタイミングでの改宗と言うのには特別なきっかけがあったわけではないのですが、Windows のメモ帳でソースファイルを見ることがある都度タブ幅設定があっていないが為に表示が崩れるのを何度も見ているうちに自分の中で改宗への動機が蓄積されていき、此度の改宗へと至りました。

使用方法

最初に一度、お手持ちのコンパイラで tabform.cpp をコンパイルして tabform コマンドを作成してください。

コマンド書式

tabform オプション 対象ファイル

オプション

i を指定するとインデントのみを変換の対象にします。

指定例

-t4
4をベースにスペースをタブに変換します。
-t4i
4をベースにインデント中のスペースのみをタブに変換します。
-s8
8をベースにタブをスペースに変換します。

ダウンロード