如何删除^ M并使行回到vim中的上一行

时间:2015-01-29 16:24:04

标签: vim replace

我有一个.txt文件,这是一个源表的转储,以制表符分隔的形式。

上述source-table中的一些单元格包含一个带换行符的文本。当我打开转储(.txt文件)时,事实证明这些换行符显示为^M\字符序列 - 它们在我的转储.txt文件中具有“真实”换行符,从而扰乱了dump .txt文件结构。

我想从文件中删除它们(我不关心这些源表格单元格中的内容)并使用:

:%s/\r\\//g

制作这样的片段:

20 20  id_20_foo_text_part1 ^M\
21 id_20_foo_text_part2^M\
22 id_20_foo_text_part3
23 21  id_21_foo_text

(第一列是vim编辑器行号,第二列是实际值(某些id))

转换为:

20 20  id_20_foo_text_part1
21 id_20_foo_text_part2
22 id_20_foo_text_part3
23 21  id_21_foo_text

虽然我想:

  20 20  id_20_foo_text_part1 id_20_foo_text_part2 id_20_foo_text_part3
  21 21  id_21_foo_text

问:如何删除^M\并将“不受欢迎的新行”行返回到上一行?

2 个答案:

答案 0 :(得分:2)

只需将:%s/\r\\//g更改为:%s/\r\\\n//

即可
  • \n之后添加\\,以执行" join"操作
  • g没有多大意义。

答案 1 :(得分:0)

在正则表达式的末尾添加换行符(\n)。像这样:

:%s/\^M\\\n//g