cheatsheets/vim-easyalign.md

1.9 KiB

title html_class hljs_languages category
Vim Easyalign key-codes
vim
Vim

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 delimiter 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 occurrence             |
| `2`       | on 2nd occurrence (and so on) |

Interactive mode

| {Visual} | activate for selection | | ga {motion} | activate for motion/text object | {:.greycode}

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

Interactive mode options

| | Set alignment | | <ctrl-l> 4 ⏎ | Set left_margin (to the left of the delimiter) | | <ctrl-r> 4 ⏎ | Set right_margin | | | no margin | {:.greycode}

Example

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

Also see