Hack #77: 縦に揃える
Posted at 2009/09/24ツイート
問題
Vimで表を記述するとき、整形のため自分でスペースを追加する必要があるシーンがあります。
また、yacc
やHaskell
など一部の言語では|
などの記号を区切りとしてソースコードを縦に美しく揃える必要がある場合があります。
解決 — Align.vim
Align.vimをインストールし、さらに.vimrc
に以下を記述します。
let g:Align_xstrlen=3
この設定は日本語など幅広文字に対応するためです。
以後、:[range]Align {separators}
で指定した範囲を縦に整形することができます。
具体例
[range]
を指定する方法は様々ありますが、例としてVisualモードで選択した範囲を対象として|
という文字を区切り文字にして縦に整形してみましょう。
まずは範囲を選択。Vしてjjj
と移動していき、
ここで:を打鍵すると:'<,'>
まで勝手に入力されるので、続いてそのままAlign |
と入力、
<Enter>で確定すると、
ばっちりできました。
議論
先ほど紹介した:[range]Align
以外に様々なインタフェースが提供されています。詳しくは:h align
を参照ください。
なお、2009年9月24日現在の最新版のAlign.vim version 35では、:[range]Align
を実行するとカーソルが全く異なる場所に飛ばされてしまうというバグがあります。
しかも、<C-o>で元の場所に戻ることができません。
最もてっとりばやい解決方法は、uでAlign操作を取り消した上で元の位置に戻り、そのまま<C-r>で再実行することです。この場合なぜかカーソルは移動しません。
参考
:h align
- Align.vim http://www.vim.org/scripts/script.php?script_id=294
もどる
blog comments powered by Disqus