我经常遇到这样的情况:
title : Jekyll Bootstrap
tagline: Site Tagline
author :
name : Name Lastname
email : blah@email.test
github : username
twitter : username
feedburner : feedname
Run Code Online (Sandbox Code Playgroud)
如果参数没有排列好,是否有一种标准方法vim
可以将每个相应的参数与最近的缩进对齐,其中缩进定义为 2 个空格,而不必逐行通过,例如在以下内容中:
title : Jekyll Bootstrap
tagline : Site Tagline
author :
name : Name Lastname
email : blah@email.test
github : username
twitter : username
feedburner: feedname
Run Code Online (Sandbox Code Playgroud)
更新:
我相信tabular.vim是我正在寻找的插件,但我很难形成一个正则表达式,当决定某些东西应该是块的一部分时,它会考虑行首的空格数,即Tabularize/:
产生:
title : Jekyll Bootstrap
tagline : Site Tagline
author :
name : Name Lastname
email : blah@email.test
github : username
twitter : username
feedburner: feedname
Run Code Online (Sandbox Code Playgroud)
这是文档中的一个示例,其中通过正则表达式实现以下功能:
abc,def,ghi
a,b
a,b,c
Run Code Online (Sandbox Code Playgroud)
:制表 /^[^,]*\zs,/r0c0l0
abc,def,ghi
a,b
a,b,c
Run Code Online (Sandbox Code Playgroud)
但是我不确定如何在考虑同一块前面的每一行具有相同数量的空格,同时仍然评估子块时如何表达这一点,例如以下比我的原始示例更复杂的子块:
comments :
provider : disqus
disqus :
short_name : jekyllbootstrap
livefyre :
site_id : 123
intensedebate :
account : 123abc
facebook :
appid : 123
num_posts : 5
width : 580
colorscheme : light
Run Code Online (Sandbox Code Playgroud)
将转化tabularize\some_regular_expression_I_cant_figure_out
为:
comments :
provider : disqus
disqus :
short_name : jekyllbootstrap
livefyre :
site_id : 123
intensedebate :
account : 123abc
facebook :
appid : 123
num_posts : 5
width : 580
colorscheme : light
Run Code Online (Sandbox Code Playgroud)
vim 的Tabularize插件可以完全满足您的需求。归结为打字Tabularize /:
然而,这可能不会保留左侧的缩进。
编辑您更新的问题:我无法直接使用表格来执行此操作,但我可以使用第二个命令来执行此操作,该命令是在范围内搜索和替换:
:%s/\([ ]*\)[[:alpha:][:punct:]]*[ ]*/\0\1/
Run Code Online (Sandbox Code Playgroud)
这会搜索 前面的一定量的空格:
,并将它们粘贴到分号之前。
归档时间: |
|
查看次数: |
858 次 |
最近记录: |