View on GitHub

memo

vim-alignta

vim-alignta

文字列整列用のplugin

コメントの行末での整列

vimで行末のようなコメントを揃えるときの話。 矩型選択などを利用して揃えるものはあるが、プラグインを使った解説をしているものがなかったのでメモ。

準備

Aligntaを入れる。 Alingtaは、文章整形用のvim plugin。 同様のツールにAlignがあるが、Aligntaの方が高機能? markdownのテーブルの整形などにも使えるので、入れておいて損はない。

インストール

NeoBundleの場合は下記でOK。

NeoBundle 'h1mesuke/vim-alignta'

やり方

下記のコードを例にする。

int a; // hoge
const int b = 1; // fuga
const double c = 2.0; // hage

揃えたい行を全て選択する。 :を押して、下記コマンドを入力する。

:'<,'>Alignta <- //

下記のように揃う。

int a;                // hoge
const int b = 1;      // fuga
const double c = 2.0; // hage

コマンドの意味

:'<,'>Alignta <- //

補足

行末コメントを揃えるのはメンテナンス性が悪いので、googleのcoding guidelineなどでは使用しないように記載されている場合もあるが、Cの場合はマクロを見やすくするために¥を行末にいれることがしばしばある。

python coding guideline

Tips

特定の行を除きたい

:'<,'>Alignta v/\/* //

特定の行だけ整列したい

:'<,'>Alignta g/\/\/ //

エスケープを省略

基本的にパターンは正規表現で記述する。 正規表現で使う文字はエスケープする必要がある。 -eをつけると文字をそのまま使うことができる。

:'<,'>Alignta -e \d

囲み文字の整列

+---------------------+-------------------------+
| Original            | :Alignta = /* */        |
+---------------------+-------------------------+
| a = 1 /* AAAAA */   | a     = 1   /* AAAAA */ |
| bbb = 10 /* BBB */  | bbb   = 10  /* BBB   */ |
| ccccc = 100 /* C */ | ccccc = 100 /* C     */ |
+---------------------+-------------------------+

markdown table