Vim 拆分参数,撤消“J”

Vim 拆分参数,撤消“J”

我发现,当函数的参数、列表的元素等被拆分到不同的行上时,它们会变得容易得多。如果这更难阅读,我可以稍后用“J”将它们连接起来。应该如何拆分括号内的所有内容。它似乎是某种正则表达式搜索和替换模式,但我找不到让它无论参数和缩进级别如何都能工作的方法:

例子:

Example 1:
parser.add_argument('--viz', action='store_true', help='to show vizualisation or not')

Desired output:
parser.add_argument('--viz',
        action='store_true',
        help='to show vizualisation or not')


Example 2:
Input:
parser.add_argument('--viz', action='store_true', lambda: print("sometext here"))

Desired output:
parser.add_argument('--viz',
        action='store_true',
        lambda: print("sometext here"))


Example 3:
Input:
def func(*args, **kwargs):
    temp = ['asd', 123, true]

Desired output:
def func(*args,
         **kwargs):

    temp = ['asd',
             123,
             true]

我想要的例子

答案1

如果这是 Python 代码,在我看来,我的拆分连接插件似乎对所有这些示例都做了正确的事情,但有一些缩进差异(无论如何,这些差异来自内置缩进脚本)。

这不是一个“你应该这样做”的答案,因为这是一个复杂的问题,你需要计算括号、忽略字符串等等。这就是为什么我为这些东西编写了一个完整的插件,它使用不同的回调函数处理每种情况。我只能建议你尝试一下,看看它是否适合你的用例。

相关内容