2

例子:

this is my text, this is, this is my text
this, this is my, this is my, this is text
this is, my text, this is, this is my text
this, this is my, this is my, this is text  

通常,我使用表格插件来对齐文本。
Pe','
我使用这个公式 的第 1 次或第 2 次出现时对齐:

Tabularize /^\(.\{-}\zs,\)\{1}/l0
Tabularize /^\(.\{-}\zs,\)\{2}/l0

并在第一次或第二次出现对齐','

Tabularize /^\(.\{-}\zs,\)\{1}\zs/l0l1
Tabularize /^\(.\{-}\zs,\)\{2}\zs/l0l1

但是, 如果我不知道有多少次出现,我如何 在最后一次出现时和之后对齐 * ?','

4

2 回答 2

3

我认为在 vim 中最后一次出现的 a,将与.*\zs,.

所以你应该能够发出类似的命令Tabularize /.*\zs,/

于 2013-06-17T04:03:40.457 回答
1

虽然我不确定您是否想要另一个插件仅用于对齐,但为了您的信息,这可以使用vim-easy-align插件轻松完成,该插件定义:EasyAlign了可视模式的命令。

  • :EasyAlign,(大约第一次出现,)
  • :EasyAlign2,(大约第二次出现,)
  • :EasyAlign-,(在最后出现的 , 附近)
  • :EasyAlign-2,(大约第 2 次到最后一次出现 ,)
  • :EasyAlign-3,(大约第 3 次到最后一次出现 ,)
  • :EasyAlign*,(围绕所有出现的 ,)

如果您按如下方式定义映射,则更容易,

vnoremap <silent> <Enter> :EasyAlign<cr>

那么您只需按两三个键即可完成。

  • <Enter>,
  • <Enter>2,
  • <Enter>-,
于 2013-06-19T10:47:16.530 回答