如何轻松上手Vim Tabular插件的基本操作指南
tabular 插件 是一款格式化对齐插件,本文记录下基本的使用方法:
按照一个指定的分割符, 左中右指定间隔对齐
比如:
#define TEST0 1000
#define LONG_FORMAT_TEST0 2000
如果希望上述代码实现下面的效果:
#define TEST0 1000
#define LONG_FORMAT_TEST0 2000
就可以借助 tabular 快速简单的实现,在 vim 中 shift+v
进入视图模式选中这两行,然后在命令行模式输入 Tabularize / /l0
就可以了。将这个命令拆分一下:
-
/
表示以 空格符作为分割符 -
/l0
表示左对齐,每一个拆分后的 filed 左边补充 0 个空格,即第一行被分割符号拆分后是:#define, ,TEST0, ,1000;第二行被分割符号拆分后是:#define, ,TEST0_LONG_FORMAT, ,2000,示意图如:vim_tabular.drawio.png
如果想让实现下面的效果该如何呢?
#define TEST0 1000
#define LONG_FORMAT_TEST0 2000
上述效果可以理解为,以 空格符为分割符,左边左对齐,中间右对齐,右边左对齐,拆分的 filed 之间不会补充额外的 符号。知道了这样的目的,命令就是 Tabularize / /l0c0r0c0l0
,其中 c0
指定的是两个 分割符的对齐格式,简单一点可以直接 Tabularize / /r0
就可以了。因为被 拆分的 filed,只有 TEST0
和 LONG_FORMAT_TEST0
需要右对齐,其他的 filed 不管是左对齐、居中对齐还是右对齐,效果都是一样的,加上 tabular 具有循环执行设置的对齐方法的功能,所以让所有的 filed 右对齐就可以了。
备注一下:如果有更多的 filed,那么回按照对齐的命令循环处理,这次我就用一个 ,
符号作为分割符的例子来展示:
test0, test1, test2, test3
long_test0, t1, longlong_test2, longlonglong_test3
如果使用 ,
作为分割符,并且对齐分别是左对齐、右对齐、左对齐、右对齐,那么拆分后是这样的:
正常需要执行的完整命令是 Tabularize /,/l0c0r0c0l0c0r0
,但是 tabular 有自动循环执行之前对齐命令的功能,可以简写为 Tabularize /,/l0c0r0c0
就可以了,后面的l0c0r0
就可以省略了,对齐后的效果是
test0 ,test1,test2 , test3
long_test0, t1,longlong_test2,longlonglong_test3
再举一个简单例子描述如何对齐后插入额外空格符号:
a,bc
ABC,DEF
很明显使用,
符号可以将每一行拆分到 3 个 filed,那么如果想实现左对齐、居中对齐、右对齐,并且左对齐后额外添加 2 个空格,那么就可以这样写:Tabularize /,/l2c0r0
,效果就会变成
a , bc
ABC ,DEF
在第一行的 a 和第二行的 ABC 左对齐后,分别又紧跟了 2 个空格。
tabular 还有更高阶的功能等待发掘...