vim tabular 只在第一场比赛就行?

标签 vim formatting format tabular

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

id     =  db.Column(db.Integer, primary_key=True)
status    =  db.Column(db.Integer, nullable=False, default=3)
...etc...

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

id     =  db.Column(db.Integer, primary_key=True)
status =  db.Column(db.Integer, nullable=False, default=3)
...etc...

只是一个普通的

: Tabularize /=

似乎匹配一切,一切都变得疯狂。

提前非常感谢!

最佳答案

你可以使用这个命令:

:Tabularize /^[^=]*\zs=

模式只匹配第一个 =


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

AddTabularPattern 1=    /^[^=]*\zs=
AddTabularPattern 1==   /^[^=]*\zs=/r0c0l0

下一次,直接运行:

:Tabularize 1=

如果您不需要 = 周围的空格,请运行以下命令:

:Tabularize 1==

关于vim tabular 只在第一场比赛就行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11497593/

相关文章:

string - 如何将字符串从 "lastName, firstName"切换到 "firstName LastName"?

javascript - 带有隐含小数点的 Angular 场

ios - 制作新格式(例如 ".rcb")

linux - vimdiff 立即停止工作,当我尝试 fg 时终端崩溃,但可以使用 GUI

vim - 如何在vim中创建Ctrl+f和ctrl+shift+f?

vim - vim:在插入模式下撤消换行符?

c - 为什么格式化输入输出需要提供变量?

c++ - 真正的位置字符串格式?

sql - 查询结果中的 google-bigquery 格式日期为 mm/dd/yyyy

vim - 如何从vim的每一行中删除最后一个单词?