Vim-easy-align 表格格式化/对齐插件
非常强大的对齐格式化插件; 对于编辑
Markdown
的table
来说简直就是量身定制神器
支持的分隔符:<Space>
=
:
.
|
&
#
,
安装
vundle` 方式安装: `vim ~/.vimrc |
常规用法
示例: 这里的 {separator}
分隔符为 =
apple =red
grass+=green
sky-= blue
对齐效果: vipga=
或 gaip=
apple = red
grass += green
sky -= blue
键入: vipga=
vip | v isual-select i nner p aragraph | 可视化模式选中一段文本 |
---|---|---|
ga | Start EasyAlign command (ga ) | 激活对齐插件 |
= | Align around = | 按 = 号对齐 |
键入: gaip=
ga | Start EasyAlign command (ga ) | 激活对齐插件 |
---|---|---|
ip | for i nner p ar:graph | 行内段落 |
= | Align around = | 按 = 号对齐 |
Markdown表格对齐
动手试验:| Option| Type | Default | Description |
|--|--|--|--|
| threads | Fixnum | 1 | number of threads in the thread pool |
|queues |Fixnum | 1 | number of concurrent queues |
|queue_size | Fixnum | 1000 | size of each queue |
| interval | Numeric | 0 | dispatcher interval for batch processing |
|batch | Boolean | false | enables batch processing mode |
|batch_size | Fixnum | nil | number of maximum items to be assigned at once |
|logger | Logger | nil | logger instance for debug logs |
左对齐: vipga*|
| Option | Type | Default | Description |
| -- | -- | -- | -- |
| threads | Fixnum | 1 | number of threads in the thread pool |
| queues | Fixnum | 1 | number of concurrent queues |
| queue_size | Fixnum | 1000 | size of each queue |
| interval | Numeric | 0 | dispatcher interval for batch processing |
| batch | Boolean | false | enables batch processing mode |
| batch_size | Fixnum | nil | number of maximum items to be assigned at once |
| logger | Logger | nil | logger instance for debug logs |
右对齐: vipga<Enter>*|
| Option | Type | Default | Description |
| -- | -- | -- | -- |
| threads | Fixnum | 1 | number of threads in the thread pool |
| queues | Fixnum | 1 | number of concurrent queues |
| queue_size | Fixnum | 1000 | size of each queue |
| interval | Numeric | 0 | dispatcher interval for batch processing |
| batch | Boolean | false | enables batch processing mode |
| batch_size | Fixnum | nil | number of maximum items to be assigned at once |
| logger | Logger | nil | logger instance for debug logs |
居中对齐: vipga<Enter><Enter>*|
| Option | Type | Default | Description |
| -- | -- | -- | -- |
| threads | Fixnum | 1 | number of threads in the thread pool |
| queues | Fixnum | 1 | number of concurrent queues |
| queue_size | Fixnum | 1000 | size of each queue |
| interval | Numeric | 0 | dispatcher interval for batch processing |
| batch | Boolean | false | enables batch processing mode |
| batch_size | Fixnum | nil | number of maximum items to be assigned at once |
| logger | Logger | nil | logger instance for debug logs |
就是这么强大!!!
高级用法
激活插件后的交互示例:
Keystrokes | Description | 等价的命令 | 描述 |
---|---|---|---|
<Space> | Around 1st whitespaces | :'<,'>EasyAlign\ | 第一个空格分隔 |
2<Space> | Around 2nd whitespaces | :'<,'>EasyAlign2\ | 第二个空格分隔 |
-<Space> | Around the last whitespaces | :'<,'>EasyAlign-\ | 最后一个空格分隔 |
-2<Space> | Around the 2nd to last whitespaces | :'<,'>EasyAlign-2\ | 倒数第二个空格分隔 |
: | Around 1st colon (key: value) | :'<,'>EasyAlign: | 第一个 : 分隔 |
<Right>: | Around 1st colon (key : value) | :'<,'>EasyAlign:>l1 | 同上, 分隔符会对齐 |
= | Around 1st operators with = | :'<,'>EasyAlign= | 第一个 = 分隔 |
3= | Around 3rd operators with = | :'<,'>EasyAlign3= | 第三个 = 分隔 |
*= | Around all operators with = | :'<,'>EasyAlign*= | 所有的 = 分隔 |
**= | Left-right alternating around = | :'<,'>EasyAlign**= | = 先左->右对齐,然后交错对齐 |
<Enter>= | Right alignment around 1st = | :'<,'>EasyAlign!= | 第一个 = 前的右对齐, 其他不变 |
<Enter>**= | Right-left alternating around = | :'<,'>EasyAlign!**= | = 先右->左对齐,然后交错对齐 |
话说后面3个尝试了多遍, 前面有点懵圈… 后来搞懂了… (可以用上面的表格示例动手操作)
详解:
{separator}
- 分隔符 常用的有:<Space>
=
:
.
|
&
#
,
n{separator}
- 应用到第n
个分隔符, 负数表示倒着数<Enter>
- 回车控制对齐方向, 默认为左对齐; 1个回车右对齐; 2个回车居中对齐; 3个回车回到左对齐; 依次类推…*{separator}
- 一个星号 + 分隔符表示 应用到所有的分隔符**{separator}
- 2个星号表示交替对齐: 第一列右对齐, 第二列左对齐, 第三列右对齐, 以此类推…<Enter>**{separator}
- 回车 + 2个星号 也是交替对齐: 第一列左对齐, 第二列右对齐, 第三列左对齐, 以此类推…Markdown
表格的分隔符为竖线:|
表格格式化宏
表格对齐目前是我需求量最大的, 所以录制了一个宏, 以后就非常方便了:
录制宏写法: q[name]{actions}q
调用宏: @[name]
表格格式化对齐宏-录制: qtvipga*|q
表格格式化对齐宏-使用: @t
另外 分隔符 是支持正则的, 激活插件后也有好些快捷键支持, 更多的还是看后面的文档吧, 里面有很多图文示例 :)
如果觉得好用, 可以去GitHub上给作者点赞
参考: