GNOME アプリの C ソース先頭にある
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: 8; c-basic-offset: 8 -*- */
って何?
多分 vim, emacs 等で使うんだろうと今迄思っていた。
けれどたまに「あれ?」と思うことがあったので実験してみた。
#!/bin/sh cat << _EOS_ > test.java #!/usr/bin/env python3 #! -*- Mode: C; indent-tabs-mode: 2; tab-width: 2 -*- import sys _EOS_
という中身は Python モードは C 拡張子は Java というファイルを作る。
Gedit で作らないように上記のようにシェルスクリプトで作った。
まあこのスクリプトを保存した時点で結果は解ってしまったけど。
筆者の Gedit では普段の設定は Python ガイドラインに合わせている。
先程のスクリプトで作ったファイルを開いたら結果はどうなった?
C モードになりタブ幅が変更され Tab ではなく空白指定が解除された。
知らなかった、Gedit はこの指定でファイル毎にインデントを指定できるんだ。
指定方法は emacs 形式でいいみたい。
更に、書き換えると保存毎にリアルタイムで変更になる。
モードを変更してタブ幅を変えても Ctrl+S を押した時点で切り替わる。
つまり先程のスクリプトは保存した時点で C に切り替わって焦った。
ということで。
筆者のような Python ガイドライン派は C を書く時に上記を先頭に書く。
C Coding Style にしている人は
#!/usr/bin/env python3 # -*- Mode: PYTHON; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
と書いとけば Python を書く毎に設定を弄らないですむ。
PHP は言語としては統一されていないのでお好みでいいかな。
とにかくどこかに書いてコメントにすればいいみたい。
<!-- -*- Mode: PHP; indent-tabs-mode: 4; tab-width: 4 -*- -->
他のファイルを開くと普通にデフォルトが適用されます。
他の言語はガイドラインを知らないので各自で調べてください。
ただ某言語はワンライナーしか書かないからどうでもいいだろうな。
後 SyntaxHighlighter は Tab にしても半角スペースになってまうんで。
Web に貼り付けている奴は気に入らないなら \t で全置換してNE!
追記
一番肝心なことを書き忘れていた。
[モードライン]プラグインの機能なので有効にしてね。