【问题标题】:Using backspace on VIM search and replace在 VIM 搜索和替换中使用退格键
【发布时间】:2013-03-04 20:22:04
【问题描述】:

Vim 搜索和替换命令的换行符使用什么字符?

我正在尝试这样做:

1, 
2, 
3, 
4, 
5 

对此:1, 2, 3, 4 ,5

所以我想写这样的东西::%s/$/\b/g

但即使我设置了::set magic,它也不起作用。 我怎样才能做到这一点?

【问题讨论】:

  • 您想将逗号移到一个空格上?
  • 我已经编辑了我的问题,每个数字都在不同的行上。
  • 您似乎只想加入这些行。由于您使用的是 Vim,因此请在可视模式下选择行并按 J 将它们连接在一起。
  • 这解决了我的问题,但只是出于好奇:在 Vim 搜索和替换中是否有表示“退格字符”的 Vim 命令?
  • “退格”字符在这里没有意义。您可能想要的是将匹配的文本替换为空。

标签: search vim replace backspace


【解决方案1】:

换行符由\n表示。

因此,通过这样一个简单的示例,您可以将每个换行符替换为:

%s/\n//g

您可以替换每个逗号,后跟可选的空格,直到行尾有一个空格,如下所示:

:%s/,\s*$\n/, /g

当然,J 运算符很可能也能很好地满足您的需求(在块中尝试 Jip您希望连接。或者根据您的 textwidth 设置自动换行:gqip

【讨论】:

  • 感谢您提供 Search and Replace 和 Visual 解决方案,:%s/\n/ /g 对我来说很好。
【解决方案2】:

您不需要:s,这将完成这项工作:

gg5J

【讨论】:

    【解决方案3】:

    使用这个搜索和替换命令:

    :%s/,\n/, /g
    

    \n 字符与搜索字符串中的换行符匹配。

    作为旁注,如果您想在替换字符串中插入 newline character,请务必改用 \r

    【讨论】:

      【解决方案4】:

      替代方案是:join 命令。

      :%j
      

      有关详细信息,请参阅

      :h :j
      

      【讨论】:

        【解决方案5】:

        您可以使用可视模式来选择要加入的行

        ggvGJ
        

        gg 将您带到文档的顶部。 v 让您进入视觉模式 G 将您带到文档的底部(从而突出显示所有行) J 连接选定范围内的所有行。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-06
          • 1970-01-01
          • 2011-05-04
          • 2011-11-09
          • 2013-08-11
          • 1970-01-01
          • 2011-06-15
          • 2019-06-21
          相关资源
          最近更新 更多