2006-12-28
emacs でソースコードを整形する方法
programming, emacs |
emacsの機能を駆使して,ソースコードを半自動的に整形する方法.
手順はたったの2stepです.具体的には
- step-1 C-c C-q で自動インデント
- step-2 M-x align-regex でキーワードを指定してテキストを整列
という流れになります.
以下例としてC言語で記述されたソースコードを使いますが,同じ手順でC以外の他の言語(C++はもちろんphp,ruby,lispなど)でも整形できます.
元のソース
const char* foo(int code) { const char *msg = NULL; switch (code) { case LS_SUCCESS: msg = "success";break; case LS_NO_RECORD: msg = "no record";break; case LS_NO_TOKEN: msg = "no token";break; } return msg; }
step-1 インデントをそろえる
const char* foo(int code) { const char *msg = NULL; switch (code) { case LS_SUCCESS: msg = "success";break; case LS_NO_RECORD: msg = "no record";break; case LS_NO_TOKEN: msg = "no token";break; } return msg; }
C-c C-q が覚えにくかったら M-x indent-region を使いましょう.
step-2 M-x align-regex で整列
M-x align-regex を使うと,指定した単語(厳密には正規表現)でテキストを整列できます.
たとえば,変数名 msg で整列したい場合は,M-x align-regex して,"msg" と入力します.
const char* foo(int code) { const char *msg = NULL; switch (code) { case LS_SUCCESS: msg = "success";break; case LS_NO_RECORD: msg = "no record";break; case LS_NO_TOKEN: msg = "no token";break; } return msg; }
続けて,break でも整列させると以下のようなすっきりとしたコードになります.
const char* foo(int code) { const char *msg = NULL; switch (code) { case LS_SUCCESS: msg = "success"; break; case LS_NO_RECORD: msg = "no record"; break; case LS_NO_TOKEN: msg = "no token"; break; } return msg; }
おすすめ度の平均: 



おすすめ度の平均: 


コメントを書く
トラックバック - http://d.hatena.ne.jp/pyopyopyo/20061228/p1
リンク元
- 5264 https://www.google.co.jp/
- 1967 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&sqi=2&ved=0CCcQFjAA&url=http://d.hatena.ne.jp/pyopyopyo/20061228/p1&ei=XPpFT7G9Gar-mAWE8bz6DQ&usg=AFQjCNF199qNaQnEOmBFjQeMC3eYgIkB1g&sig2=mvKLgSBLLtRuffzNtvgXUw
- 720 https://www.google.co.jp
- 260 http://www.google.co.jp/search?q=emacs+整形&ie=utf-8&oe=utf-8&rls=com.ubuntu:ja:official&client=firefox
- 242 http://www.google.co.jp/search?q=emacs+整形&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 230 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cts=1330999961691&ved=0CDwQFjAB&url=http://d.hatena.ne.jp/pyopyopyo/20061228/p1&ei=lnJVT_i8DYfNrQf49cXDDQ&usg=AFQjCNF199qNaQnEOmBFjQeMC3eYgIkB1g&sig2=4eATyTgbCN9armtC88PvnA
- 202 http://www.google.co.jp/search?hl=ja&q=emacs+整形&btnG=Google+検索&lr=
- 195 http://www.google.co.jp/url?sa=t&rct=j&q=emacs 整形&source=web&cd=1&ved=0CCEQFjAA&url=http://d.hatena.ne.jp/pyopyopyo/20061228/p1&ei=I9SfToqRO-q0iQejk8XEBg&usg=AFQjCNF199qNaQnEOmBFjQeMC3eYgIkB1g
- 184 https://www.google.com/
- 146 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=1&ved=0CCcQFjAA&url=http://d.hatena.ne.jp/pyopyopyo/20061228/p1&ei=-YmWT_2lPMTImAWvgY22Dg&usg=AFQjCNF199qNaQnEOmBFjQeMC3eYgIkB1g&sig2=osG8LV0H1eYBt5VzjBiMJQ