さて、それのどこが問題かと言うと、
実は、Emacs系のエディタを使っている仲間同志では気づかないのですが、
それ以外のエディタを使っている人とは相性が悪いのです。
以下の例を見てください。
Emacs系のエディタで「タブ8、インデント4」の設定(デフォルト)で
以下のスクリプトを記述したとします。
set a 1 if {$a == 1} { set b 2 ;# 最初のインデント if {$b == 2} { set c 3 ;# 次のインデント } } |
最初のインデントは、スペースが4つ挿入されますが、
次のインデントは、タブが1つ挿入されます。
見た目には正しいように思えますが、
このファイルをEmacs系のエディタ以外で開くと以下の様に見えます。
set a 1 if {$a == 1} { set b 2 ;# 最初のインデント if {$b == 2} { set c 3 ;# 次のインデント } } |
"次のインデント"の行のインデントが期待通りになっていません。
これはEmacs系のエディタのタブ設定が8なので、
2つインデントしたところにタブが1つ挿入されるために起こります。
自分では正しくインデントしていても、他の人からインデントが変である
という指摘を受けるかもしれません。
もう1つの問題は、
最初のインデントにおいて、スペースが4つ挿入されることです。
これは知らず知らずのうちに、ファイルサイズを大きくしています。
それでは、どうしたらよいのでしょうか?
; Tclモード (setq tcl-indent-level 8) |
でも、インデントは4の方が見やすいですよね。
; Tclモード (add-hook 'tcl-mode-hook '(lambda () (setq tab-width 1))) |
でも、ファイルサイズが大きくなりますね。
; Tclモード (add-hook 'tcl-mode-hook '(lambda () (setq tab-width 4))) |
最もファイルサイズが小さくなるベストな設定です。
これでEmacs系以外のエディタと問題なくファイル交換ができそうですね。