如何在Vim中连接行而不为空行添加空间

如何在Vim中连接行而不为空行添加空间,vim,spacing,Vim,Spacing,当我使用J连接线时,空间会按预期自动添加。但是,当我有一行文字后跟一个空行,我想用J删除该空行时,它会在我的当前行中添加一个空格。我考虑过不将J映射到Jx,以便删除空白,但这将使我在连接两行文字时不会添加空格。在看了手册之后,我找不到任何听起来像我想要的东西 下面是一些我期待发生的事情的例子。我很抱歉提前格式化 目前我有: 在将空格替换为之前-为了可读性: Some-text Some-text 之后: Some-text- Some-text-Some-more Some-text

当我使用J连接线时,空间会按预期自动添加。但是,当我有一行文字后跟一个空行,我想用J删除该空行时,它会在我的当前行中添加一个空格。我考虑过不将J映射到Jx,以便删除空白,但这将使我在连接两行文字时不会添加空格。在看了手册之后,我找不到任何听起来像我想要的东西

下面是一些我期待发生的事情的例子。我很抱歉提前格式化

目前我有:

在将空格替换为之前-为了可读性:

Some-text

Some-text

之后:

Some-text-
Some-text-Some-more
Some-text
Some-text-Some-more
之前:

Some-text
Some-more
Some-text
Some-more
之后:

Some-text-
Some-text-Some-more
Some-text
Some-text-Some-more
我希望:

在将空格替换为-之前,对于可编辑性:

之后:

Some-text-
Some-text-Some-more
Some-text
Some-text-Some-more
之前:

Some-text
Some-more
Some-text
Some-more
之后:

Some-text-
Some-text-Some-more
Some-text
Some-text-Some-more

简而言之,当包含字符的行被连接时,我需要一个空格,而当被连接的行为空时,不需要添加空格。

如果下一行为空,您可以定义一个函数在gJ和J之间切换。然后将该函数映射到J:


getlineline'.+1==检查下一行是否为空。

谢谢,这正是我想要的,我将接受它,但遗憾的是,如果不生成函数,就无法启用它。谢谢