2009-10-16 89 views

回答

28

格式化破坏信息。有很多不同的文本块会被格式化成相同的文本块。因此,没有先验知识(即撤销),无法扭转操作。

未格式化:

Unformatted text could start out as either all one line, or several, yet look the same when formatted. 

Unformatted text could start out as either all one line, or several, 
yet look the same when formatted. 

格式化:

Unformatted text could start out as 
either all one line, or several, 
yet look the same when formatted. 

如果你希望你的段落都在同一行,或者如果你没事一点点手动摆弄,你可以使用J加盟回到一起。您可以使用视觉模式将J命令一次应用于多行,也可能与apip结合使用以选择一个段落,例如, vipJ。再一次,你仍然会失去一些信息 - 在格式化之前的换行符处有多个空格将最终归结为单个空格。 (实际上,你可以加入不使用gJ代替J修改空间,但你已经失去了他们,当你格式化)

如果你用多余的空格后的句子困扰(线结束!,?, 。或)关闭joinspaces:set nojoinspaces

+0

非常感谢。我已经尝试加入线条,但让我恼火的是在加入线条后,句子之间会突然出现多个空格。 – binOr 2009-10-16 16:24:09

+3

然后你的问题的答案是简单地取消设置连接空间:':set nojoinspaces' – Cascabel 2009-10-16 16:29:57

+0

绝对是,谢谢!一句话之后我对这2个空格不熟悉。 – binOr 2009-10-16 16:38:03

54

我有一种感觉,这是你真正想要的:GJ

:h gJ

gJ   Join [count] lines, with a minimum of two lines. 
      Don't insert or remove any spaces. {not in Vi} 

如果您从终端复制了某些内容并将其作为大矩形块粘贴到vim中,而不是单一行,则此功能非常方便。

我通常在视觉模式下使用它。 Hilight stuff,gJ

+4

这是正确的答案。接受的答案不适合我。 – Jonah 2013-01-08 20:35:20

+1

相同。 nojoinspaces没有任何效果。我不得不宏观Jx删除每个空间。 – 2013-11-12 13:46:31

6

This是最终为我工作的答案,以上都没有在我的用例中工作。

本质上,使用gJ像多个其他人所说,但突出显示所有文件,所以在命令模式下键入ggVGgJ

4

我想简单的解决方案加入了行不带空格之间:

:j! 

随着!的连接不插入或删除任何空格。对于整个文件,请使用:%j!

参见::help :join

1

如果我们的工作线不以空间结束,我在加入后仍然有额外的一个空间。通常这是所需的行为。例如

first line without space 
second line 

J加盟后,成为

first line without space second line 

虽然在某些情况下,我们不希望应用它,

myInstance->methodA() 
      ->methodB() 

,我们将希望加入成为myInstance->methodA()->methodB()两者之间没有任何空间!

这里佣工映射我使用

nmap <leader>jj Jx 

<领导>键可以:let mapleader,默认情况下进行检查,以键入\我相信。

所以在正常模式下,只需要\jj来执行连接,没有任何额外的空间!

相关问题