如何将换行符分隔列表移动到 vim 中的同一行

How to move linebreak separated list to the same line in vim

我有时 运行 进入这样的代码,例如减少函数的参数数量后:

def foo(
    arg1,
    arg2):

    # do something

当有很多长参数时,以这种方式分解参数列表可能有意义,但现在我希望文本看起来像这样:

def foo(arg1, arg2):

    # do something

对我来说,这通常意味着移动到 arg1 的开头,进入插入模式,然后按退格键直到我取消选中参数,然后重复 arg2.

这些情况太小以至于无法保证设置宏甚至使用 sed。 vim 中是否有一个组合键,我可以使用它来删除 foo 的左括号和 arg1 的第一个字母之间的所有空格(包括换行符)?

示例是 python 但这确实不是特定于语言的问题。

For me, this usually means moving to the start of arg1, entering insert mode, and pressing backspace until I've untabbed the parameter, then repeating for arg2.

或者,更简单地说,JxJJ

但是,根据评论,使用 an external formatter 是一个非常明智的想法。

" in after/ftplugin/python.vim
set formatprg=black-3.8\ -q\ -

参见 :help J:help gq