前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vim tabular 插件基础使用方法

vim tabular 插件基础使用方法

原创
作者头像
iysheng
发布2022-03-29 10:13:51
1.9K0
发布2022-03-29 10:13:51
举报
文章被收录于专栏:Embedded Development

tabular 插件 是一款格式化对齐插件,本文记录下基本的使用方法:

按照一个指定的分割符, 左中右指定间隔对齐

比如:

代码语言:C
复制
#define TEST0 1000
#define LONG_FORMAT_TEST0 2000

如果希望上述代码实现下面的效果:

代码语言:C
复制
#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
    vim_tabular.drawio.png

如果想让实现下面的效果该如何呢?

代码语言:C
复制
#define             TEST0 1000
#define LONG_FORMAT_TEST0 2000

上述效果可以理解为,以 空格符为分割符,左边左对齐,中间右对齐,右边左对齐,拆分的 filed 之间不会补充额外的 符号。知道了这样的目的,命令就是 Tabularize / /l0c0r0c0l0 ,其中 c0 指定的是两个 分割符的对齐格式,简单一点可以直接 Tabularize / /r0 就可以了。因为被 拆分的 filed,只有 TEST0LONG_FORMAT_TEST0 需要右对齐,其他的 filed 不管是左对齐、居中对齐还是右对齐,效果都是一样的,加上 tabular 具有循环执行设置的对齐方法的功能,所以让所有的 filed 右对齐就可以了。

备注一下:如果有更多的 filed,那么回按照对齐的命令循环处理,这次我就用一个 , 符号作为分割符的例子来展示:

代码语言:text
复制
test0, test1, test2, test3
long_test0, t1, longlong_test2, longlonglong_test3

如果使用 , 作为分割符,并且对齐分别是左对齐、右对齐、左对齐、右对齐,那么拆分后是这样的:

vim_tabular-Page-2.drawio.png
vim_tabular-Page-2.drawio.png

正常需要执行的完整命令是 Tabularize /,/l0c0r0c0l0c0r0 ,但是 tabular 有自动循环执行之前对齐命令的功能,可以简写为 Tabularize /,/l0c0r0c0 就可以了,后面的l0c0r0就可以省略了,对齐后的效果是

代码语言:text
复制
test0     ,test1,test2         ,             test3
long_test0,   t1,longlong_test2,longlonglong_test3

再举一个简单例子描述如何对齐后插入额外空格符号:

代码语言:text
复制
a,bc
ABC,DEF

很明显使用,符号可以将每一行拆分到 3 个 filed,那么如果想实现左对齐、居中对齐、右对齐,并且左对齐后额外添加 2 个空格,那么就可以这样写:Tabularize /,/l2c0r0,效果就会变成

代码语言:text
复制
a    , bc
ABC  ,DEF

在第一行的 a 和第二行的 ABC 左对齐后,分别又紧跟了 2 个空格。

tabular 还有更高阶的功能等待发掘...

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 按照一个指定的分割符, 左中右指定间隔对齐
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档