Emacsのalignが便利

投稿者: shuichi, タグ: ,,,,, 投稿日時: 2009/04/08 21:50

Emacsのalignがけっこう便利。桁揃えが簡単になるので、特にコーディングするときに重宝する。例えば次のようなコードがあるとする。

input HCLK; // Clock
output [31:0] HADDR; // Address
output [1:0] HTRANS; // Transfer type
output HWRITE; // Transfer direction
output [2:0] HSIZE; // Transfer size
output [2:0] HBURST; // Burst type
output [31:0] HWDATA; // Write data
input [31:0] HRDATA; // Read data
input HREADY; // Transfer done

そして次に示すコマンドを実行してみる。

コードをリージョンで選択→M-x align-regexp→Align regexp: \[
コードをリージョンで選択→M-x align-regexp→Align regexp: H
コードをリージョンで選択→M-x align-regexp→Align regexp: //

するとコードが次のように桁揃えされる。

input         HCLK;   // Clock
output [31:0] HADDR;  // Address
output [1:0]  HTRANS; // Transfer type
output        HWRITE; // Transfer direction
output [2:0]  HSIZE;  // Transfer size
output [2:0]  HBURST; // Burst type
output [31:0] HWDATA; // Write data
input  [31:0] HRDATA; // Read data
input         HREADY; // Transfer done

同じようなことを3回繰り返しているのでちょっと面倒だが、手作業でやるよりはマシだと思う。どこで桁揃えするかを正規表現で指定できるのでかなり応用が利く。場合によっては余計面倒になるかもしれないが…。

ちなみにC-u M-x align-regexpでもう少し複雑なことができる。詳細はEmacsWiki: Align Commandsを参照。さらに、桁揃えのルールをあらかじめ定義しておくことができるので、これを定義しておけばもっと便利になりそう。