如何使用vim / tabularize到中心线但留下前缀?

时间:2016-07-26 16:21:11

标签: vim alignment

我最近有想法尝试使用tabularize来" center"一些台词。例如,以下是一些Vim插件:

Plug 'ervandew/supertab'
Plug 'godlygeek/tabular'
Plug 'itchyny/lightline.vim'
Plug 'kien/ctrlp.vim'

如果我运行:Tabularize /\//r0c0l0,我得到的是:

  Plug 'ervandew/supertab'
 Plug 'godlygeek/tabular'
   Plug 'itchyny/lightline.vim'
      Plug 'kien/ctrlp.vim'

这非常接近,除了Plug也被移动了。有没有办法使用tabularize来基于斜线居中,但让Plug保持不动,如下所示:

Plug  'ervandew/supertab'
Plug 'godlygeek/tabular'
Plug   'itchyny/lightline.vim'
Plug      'kien/ctrlp.vim'

2 个答案:

答案 0 :(得分:0)

一种解决方案是搜索包规范的左侧部分并按其对齐,如:

:Tabularize /'[^/]\+/l1r0l0

左侧是Plug,中间是'<package author>,右侧是\<package name>'

答案 1 :(得分:0)

您可以使用其他方法实现这一目标,分为两步:

:let temp=&textwidth | :%s:/:/\r:g | execute "set textwidth=".max(map(getline(1,'$'),'len(v:val)')) | :%right | :%normal! Jx
:execute "set textwidth=".temp | %s/^\(.*\)\(Plug\)\(.\+\)'/\2\1\3'/g

max(map(getline(1,'$'),'len(v:val)'))