如何在 Vim 中不为空行添加空间的情况下连接行



当我使用J连接行时,空间会按预期自动添加。但是,当我有一行单词后跟一个空行并且我想删除该空行时J它会为我当前的行添加一个空格。我考虑nnoremapingJJx以删除空格,但是当我连接两行包含文本时,它不会添加空格。在浏览了手册后,我找不到任何听起来像我想要的东西。

以下是我希望发生的事情的一些例子。 我提前对格式表示歉意。

目前我有:

之前(为了便于阅读,空格替换为-(:

Some-text

后:

Some-text-

以前:

Some-text
Some-more

后:

Some-text-Some-more

我渴望:

之前(空格替换为-以实现可编辑性(:

Some-text

后:

Some-text

以前:

Some-text
Some-more

后:

Some-text-Some-more

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

您可以定义一个函数,以便在下一行为空时在gJJ之间切换。然后将该函数映射到J

noremap J :call J()<cr>
function! J()
if getline(line('.')+1)=="" | exe 'normal gJ' | else | join | endif
endfunction

getline(line('.')+1)==""检查下一行是否为空。

最新更新