alignta v0.2.0 での変更点について

現在 alignta*1 を使っている人向けの記事です。

version 0.2.0 で shifting alignment による整列の仕様や整列オプションの指定書式が一部変更になりました。他にも追加された機能やなくなった変数があったりするので、主な変更点をここにまとめておきます。

Padding Alignment

{L-fld-align}, {M-fld-align} を複数指定できるようにした

複数マッチがある場合の {L-fld-align}, {M-fld-align}((最初のマッチの右側がすなわち 2番目のマッチの左側であるので、Left field とか Right field という考え方自体わかりにくいのですが、以下のようなイメージでとらえるとわかりやすいと思います↓

L, M, [L, M, [L, M, [...[L, M, R]...]]])) を個別に指定できるようにしました。最後の {M-fld-align} の次は、最初の {L-fld-align} へと循環していきます。

  a = bbbbb =  c = ddddd =  e = fffff =  1
   aaa = bbb = ccc =  ddd = eee = fff = 10
  aaaaa =  b = ccccc = d = eeeee =  f = 100
:Alignta <<|<><= =

 ↓

  a     = bbbbb =     c = ddddd =   e   = fffff =  1
  aaa   =  bbb  =   ccc = ddd   =  eee  =   fff = 10
  aaaaa =   b   = ccccc = d     = eeeee =     f = 100
{R-fld-align} を省略可とした

すなわち、これまで "|||"">>>" といった具合に 3文字必要だったところが、{L-fld-align}{R-fld-align} が同じなのであれば後者を省略できるようにしました。

新たなフィールドのパディング方法として "=" を追加

これは「左揃え」「中央揃え」「右揃え」のような「寄せ」の処理を行わず、単純にフィールドの幅だけを揃えるパディング方法で、末尾に空白文字を付加するだけのものです。

  a =  1
   bbb = 10
  ccccc = 100
:Alignta == =

 ↓

  a     =  1
   bbb  = 10
  ccccc = 100

Shifting Alignment

単純にパターンの開始位置だけを揃える整列方式として仕様を一新しました。これまで、パターンの開始位置を揃えるとともに、マッチ左側のフィールドのパディングもやる(やってしまう)仕様でしたが、これを改め、マッチ左側には関知しない整列方式になりました。

最左/最右位置での整列

整列オプションの指定により "<-" で最左位置での整列、"->" で最右位置での整列になります。

最左位置での整列

  a             b c
   aaa           bbb  ccc
  aaaaa     bbbbb ccccc
:Alignta <- b

 ↓

  a         b c
   aaa      bbb  ccc
  aaaaa     bbbbb ccccc

最右位置での整列

  a             b c
   aaa           bbb  ccc
  aaaaa     bbbbb ccccc
:Alignta -> b

 ↓

  a              b c
   aaa           bbb  ccc
  aaaaa          bbbbb ccccc
タブ文字による整列

"-" を加えて線を伸ばすと、タブストップで整列します。この際、バッファが noexpandtab なら、整列にタブ文字が使用されます。

最左位置での整列

  a>>--->--->--b c
   aaa>->--->---bbb  ccc
  aaaaa>>---bbbbb ccccc
:Alignta <-- b

 ↓

  a>>--->---b c
   aaa>->---bbb  ccc
  aaaaa>>---bbbbb ccccc

最右位置での整列

  a>>--->--->--b c
   aaa>->--->---bbb  ccc
  aaaaa>>---bbbbb ccccc
:Alignta --> b

 ↓

  a>>--->--->---b c
   aaa>->--->---bbb  ccc
  aaaaa>>--->---bbbbb ccccc

Variables

g:alignta_confirm_for_retab変数を削除

タブ文字を含む範囲の整列時に :retab を使わなくなったのでこの変数は削除しました。



以上です。

こんな仕様じゃ使いにくいよ! というのがあれば、早めに言っていただけると対応できるかも知れません。

*1:alignta は Vim使いにはおなじみ(?)の Align.vim を置き換えるべく、私が開発している整列用プラグインです。リポジトリはこちら↓

h1mesuke/vim-alignta - GitHub
https://github.com/h1mesuke/vim-alignta