EasyAlign EasyAlign 是一款用来做字符对齐的插件,简直是强迫症患者的福音。 项目地址 https://github.com/junegunn/vim-easy-align 安装 修改 配置,在 后面添加如下配置 注意:Vim 插件管理器的使用请参考plugin.md 运行 Vim 并执行命令 , 可能会得到如下提示: 使用 配置 添加 配置如下: 实验 在下面的代码中尝试如下操作: 首先定位光标到上面代码中的任意一句,按 ,应该会得到 如下结果 保持光标不动,按 ,应该会得到如下结果 保持光标不动,按 ,再按 ,应该会得到如下结果 下面解释一下按键的意思: - 是开启 EasyAlign 的快捷键,我们在 配置文件中定义的 是定义操作区域,可以用任意选择操作命令完成,
EasyAlign 是一款用来做字符对齐的插件,简直是强迫症患者的福音。
https://github.com/junegunn/vim-easy-align
修改
.vimrc配置,在call plug#begin()后面添加如下配置
Plug 'junegunn/vim-easy-align'
注意:Vim 插件管理器的使用请参考plugin.md
运行 Vim 并执行命令
:PlugInstall, 可能会得到如下提示:
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.
添加
.vimrc配置如下:
" EasyAlign xmap ga <Plug>(EasyAlign) " Visual 模式下快捷键 nmap ga <Plug>(EasyAlign) " Normal 模式下快捷键 " 配置一些自定义符号 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 \ } \ }
在下面的代码中尝试如下操作:
let a=1;// one let bcd=test=2; // two let longword=others= 'some content';// string
首先定位光标到上面代码中的任意一句,按
gaip<Space>,应该会得到
如下结果
let a=1;// one let bcd=test=2; // two let longword=others= 'some content';// string
保持光标不动,按
gaip=,应该会得到如下结果
let a = 1;// one let bcd = test=2; // two let longword = others= 'some content';// string
保持光标不动,按
u,再按gaip*=,应该会得到如下结果
let a = 1;// one let bcd = test = 2; // two let longword = others = 'some content';// string
下面解释一下按键的意思:
gaip
ga 是开启 EasyAlign 的快捷键,我们在 .vimrc 配置文件中定义的ip 是定义操作区域,可以用任意选择操作命令完成,ip 是选择当前段落,如果光2j 代替 ip:EasyAlign (_) 字样,表示等待匹配输入<Space> 是要将第一个空格前后对齐gaip=
= 即将<等号>前后对齐gaip*=
u 撤销了前面的操作= 前面的 * 是一个描述符,可以是数字,代表第几个等号,也可以是负数,代表如果确定修改好了上面提到的配置,你还可以尝试
gaip/来对齐注释部分,执行后看
上去会像下面这样
let a = 1; // one let bcd = test = 2; // two let longword = others = 'some content'; // string
上面提到的 <Space> = 都是 EasyAlign 中定义好的特殊符号,用来表示某一类特征符
,具体可以参考下表:
| 按键 | 使用场景说明 |
|---|---|
<Space> |
匹配空白符 |
= |
包含等号的操作符(=, ==, !=, +=, ...) |
: |
应用于 JSON 或 YAML 格式 |
. |
应用于多行点语法调用 |
, |
应用于多行参数列表 |
& |
对 LaTeX table 进行格式化,匹配 & 和 \\ |
# |
应用于对 Ruby/Python 的注释的对齐 |
<Bar> |
Markdown 表格 |
注意:上表中提到的 <Bar> 键即 | 键
尝试在上表中按
gaip*|对 markdown 表格进行对齐
在等待输入匹配符,命令区出现 :EasyAlign (_) 字样时,可以按 <Enter> 键选择对
齐方向,按一次切换为右对齐,显示 :EasyAlign[R] (_),再按一次切换为居中对齐,显
示为 :EasyAlign[C] (_),再按切换回默认的左对齐,显示也恢复原样。
在上面的 markdown 表格中尝试一下
gaip<Enter><Enter>*|
在等待输入匹配符时,按快捷键 <Ctrl-x> 进入匹配模式,此时输入你需要的匹配特征正
则即可匹配特殊组合。参考下面的文字:
Lorem<-ipsum dolor <--sit amet<= consectetur <- adipiscing elit<~~ sed <~ do eiusmod<-= tempor<=- incididunt ut <== labore
尝试输入
gaip*<Ctrl-x>,此时进入正则匹配模式,继续输入<[-=~]*<Enter>会得
到如下所示结果。
Lorem <- ipsum dolor <-- sit amet <= consectetur <- adipiscing elit <~~ sed <~ do eiusmod <-= tempor <=- incididunt ut <== labore
更多内容请参考项目页的介绍