vim-users.jp

Hack #77: 縦に揃える

Posted at 2009/09/24
このエントリーをはてなブックマークに追加

問題

Vimで表を記述するとき、整形のため自分でスペースを追加する必要があるシーンがあります。 また、yaccHaskellなど一部の言語では|などの記号を区切りとしてソースコードを縦に美しく揃える必要がある場合があります。

解決 — Align.vim

Align.vimをインストールし、さらに.vimrcに以下を記述します。

let g:Align_xstrlen=3

この設定は日本語など幅広文字に対応するためです。

以後、:[range]Align {separators}で指定した範囲を縦に整形することができます。

具体例

[range]を指定する方法は様々ありますが、例としてVisualモードで選択した範囲を対象として|という文字を区切り文字にして縦に整形してみましょう。

1

まずは範囲を選択。Vしてjjjと移動していき、

2

ここで:を打鍵すると:'<,'>まで勝手に入力されるので、続いてそのままAlign |と入力、

3

<Enter>で確定すると、

4

ばっちりできました。

議論

先ほど紹介した:[range]Align以外に様々なインタフェースが提供されています。詳しくは:h alignを参照ください。

なお、2009年9月24日現在の最新版のAlign.vim version 35では、:[range]Alignを実行するとカーソルが全く異なる場所に飛ばされてしまうというバグがあります。 しかも、<C-o>で元の場所に戻ることができません。 最もてっとりばやい解決方法は、uでAlign操作を取り消した上で元の位置に戻り、そのまま<C-r>で再実行することです。この場合なぜかカーソルは移動しません。

参考

ujihisa

もどる
blog comments powered by Disqus