EasyAlign is a plugin for doing character alignment that is nothing short of OCD.
https://github.com/junegunn/vim-easy-align
Modify
.vimrcconfiguration, add the following configuration aftercall plug#begin()
Plug 'junegunn/vim-easy-align'Note: For use of the Vim plugin manager, see vim-plugin.md
Run Vim and execute the command
:PlugInstall, you may get the following prompt:
1 Updated. Elapsed time: 6.008607 sec.
2 [===]
3
4 - Finishing ... Done!
5 - vim-github-dashboard: Already installed
6 - nerdtree: Already installed
7 - vim-easy-align: Resolving deltas: 100% (136/136), done.
Add
.vimrcconfiguration as follows:
" EasyAlign
xmap ga <Plug>(EasyAlign) " The shortcut key in visual mode
nmap ga <Plug>(EasyAlign) " The shortcut key in normal mode
" Configure some custom symbols
let g:easy_align_delimiters = {
\ '>': { 'pattern': '>>\|=>\|>' },
\ '/': {
\ 'pattern': '//\+\|/\*\|\*/',
\ 'delimiter_align': 'l',
\ 'ignore_groups': ['!Comment'] },
\ ']': {
\ 'pattern': '[[\]]',
\ 'left_margin': 0,
\ 'right_margin': 0,
\ 'stick_to_left': 0
\ },
\ ')': {
\ 'pattern': '[()]',
\ 'left_margin': 0,
\ 'right_margin': 0,
\ 'stick_to_left': 0
\ },
\ 'd': {
\ 'pattern': ' \(\S\+\s*[;=]\)\@=',
\ 'left_margin': 0,
\ 'right_margin': 0
\ }
\ }Try the following operations in the code below:
let a=1;// one
let bcd=test=2; // two
let longword=others= 'some content';// stringFirst locate the cursor to any sentence in the above code, press
gaip<Space>, you should get the following results
let a=1;// one
let bcd=test=2; // two
let longword=others= 'some content';// stringKeep the cursor still, press
gaip=, you should get the following results
let a = 1;// one
let bcd = test=2; // two
let longword = others= 'some content';// stringKeep the cursor still, press
u, then pressgaip*=, you should get the following results
let a = 1;// one
let bcd = test = 2; // two
let longword = others = 'some content';// stringThe meaning of the keys is explained below:
gaipgais the shortcut to enable EasyAlign, which we defined in the.vimrcconfiguration file.ipdefines the action area, which can be done with any select action command,ipselects the current paragraph, and if the cursor is on the first line of code,2jcan be used instead of.vimrc. If the cursor is on the first line of code, you can use2jinstead ofip.- At this point, the word
:EasyAlign (_)will appear in the command area, indicating that it is waiting for matching input. - Press
<Space>to align the first space.
gaip=- Same as above,
=is to align the<equals sign>.
- Same as above,
gaip*=- To see the effect, undo the previous operation with
u. - The
=preceded by*is a descriptor that can be a number, representing the first equals sign, or a negative number, representing the the penultimate number, or an asterisk for all.
- To see the effect, undo the previous operation with
If you're sure you've changed the configuration as mentioned above, you can also try
gaip/to align the comment section, and when executed, look at It will look like this
let a = 1; // one
let bcd = test = 2; // two
let longword = others = 'some content'; // stringThe above mentioned <Space> = are special symbols defined in EasyAlign to
indicate a certain type of character. These symbols are defined in EasyAlign to
represent a certain type of character:
| Keystrokes | Scenario Description |
|---|---|
<Space> |
Match whitespace |
= |
Operators containing the equals sign (=, ==, ! =, +=, ...) |
: |
Applies to JSON or YAML formats |
. |
Apply to multi-line dot syntax calls |
, |
Apply to multi-line parameter lists |
& |
Format LaTeX table to match & and \\\ |
# |
Apply alignment to Ruby/Python comments |
<Bar> |
Markdown tables |
Note: The <Bar> key mentioned in the table above is the | key.
Try to align a markdown table by
gaip*|in the above table.
When you are waiting for a match to be entered and :EasyAlign (_) appears in
the command area, you can press the <Enter> key to select the alignment
direction. Press once to switch to right alignment and display
:EasyAlign[R] (_), press again to switch to center alignment and display
:EasyAlign[R] (_), and press <Enter> to switch to center alignment and
display :EasyAlign[R] (_). toggle to center alignment and display
:EasyAlign[C] (_), then press again to switch back to the default left
alignment, and the display returns to its original state.
Try
gaip<Enter><Enter>*|in the markdown table above.
While waiting for a match to be typed, press the shortcut key <Ctrl-x> to
enter match mode, and then type in the matching feature you want. The special
combination can be matched by typing in the matching feature you need. See the
following text:
Lorem<-ipsum
dolor <--sit
amet<= consectetur <- adipiscing
elit<~~ sed <~ do
eiusmod<-= tempor<=- incididunt
ut <== labore
Try typing
gaip*<Ctrl-x>, then it enters the regular matching mode, continue typing<[-=~]*<Enter>and you will get the following result. The result is shown below.
Lorem <- ipsum
dolor <-- sit
amet <= consectetur <- adipiscing
elit <~~ sed <~ do
eiusmod <-= tempor <=- incididunt
ut <== labore
For more references, please refer to the introduction of project page