Command mode

Align by delimiters

:EasyAlign :       " preset characters (\=:.,&#|)
:EasyAlign |
:EasyAlign \       " \ means space

Align by regexp

:EasyAlign /[:;]+/

Specify which

:EasyAlign |       " align by 1st `|`
:EasyAlign 3 |     " align by 3rd `|`
:EasyAlign * |     " align by all `|`s

Add options

:EasyAlign * | l4r1

  l4     " lN - left_margin
  r1     " rN - right_margin
         "    spaces to the left/right of `|`
  ar     " a[lrc] - align
         "    align left/right/center
  dr     " d[lrc] - delimiter_align
         "    alignment of the delimeter itself

Spaces are optional

:EasyAlign * /[;:]+/ l3
:EasyAlign*/[;:]+/l3

Examples

:EasyAlign = dr (delimiter_align right)

apple    = 1
banana  += apple
cake   ||= banana

:EasyAlign : (for json or yaml)

url:      jdbc:mysql://localhost/test
database: test

:EasyAlign *| (markdown tables)

| `<Enter>` | right align                  |
| `1`       | on 1st occurence             |
| `2`       | on 2nd occurence (and so on) |

Interactive mode

{Visual} activate for selection
ga {motion} activate for motion/text object

Then press options (if available), then a delimiter.

Interactive mode options

Set alignment
<ctrl-l> 4 ⏎ Set left_margin (to the left of the delimeter)
<ctrl-r> 4 ⏎ Set right_margin
no margin

Example

  • gaip <ctrl-l> 8⏎ = - puts 8 spaces before the equal sign

Also see