vim表格只在第一场比赛的线上?

Hoo*_*pes 13 format vim formatting tabular

我正在尝试使用tabular.vim插件格式化一些python代码.它目前是sqlalchemy声明类,看起来像这样:

id     =  db.Column(db.Integer, primary_key=True)
status    =  db.Column(db.Integer, nullable=False, default=3)
...etc...
Run Code Online (Sandbox Code Playgroud)

我希望能够只对齐列表中的第一个等号.

id     =  db.Column(db.Integer, primary_key=True)
status =  db.Column(db.Integer, nullable=False, default=3)
...etc...
Run Code Online (Sandbox Code Playgroud)

只是一个常规

: Tabularize /=
Run Code Online (Sandbox Code Playgroud)

似乎与一切相符,一切都变得疯狂.

首先十分感谢!

kev*_*kev 21

您可以使用此命令:

:Tabularize /^[^=]*\zs=
Run Code Online (Sandbox Code Playgroud)

该模式仅匹配第一个模式=.


您可以将这两行添加到 ~/.vim/after/plugin/TabularMaps.vim

AddTabularPattern 1=    /^[^=]*\zs=
AddTabularPattern 1==   /^[^=]*\zs=/r0c0l0
Run Code Online (Sandbox Code Playgroud)

下次,只需运行:

:Tabularize 1=
Run Code Online (Sandbox Code Playgroud)

如果你不需要空格=,请运行:

:Tabularize 1==
Run Code Online (Sandbox Code Playgroud)


小智 15

上面的建议很好,但在这种情况下,它们有点太复杂,需要打字太多.怎么样:

:Tab /=.*/
Run Code Online (Sandbox Code Playgroud)

这很好 - 匹配第一个等号和后面的所有内容,左对齐(默认,工作得很好!).


Flo*_*gFR 5

优秀的插件:vim-easy-align.