【问题标题】:How do I search for "\n" without a preceding "\r" in vim?如何在 vim 中搜索没有前面的“\r”的“\n”?
【发布时间】:2010-02-03 00:05:38
【问题描述】:

如果看到不一致的行尾,Vim 将不会转换文件格式。我怎样才能找到那些?

【问题讨论】:

    标签: vim file-format


    【解决方案1】:

    零宽度后视断言

    “如何在 vim 中搜索不带“\r”的“\n”?”

    /\r\@<!\n
    

    如何搜索并用“\r\n”替换这些出现?

    :%s/\r\@<!\n/\r\n/gc
    

    如果您想在不确认的情况下接受每场比赛,请去掉最后的“c”。

    编辑:但是,如果您想要一个答案,您可以记住如何在不使用十亿次前瞻性/后面断言的情况下执行操作,请参阅 Jackson Miller 的回答。有时最好简化您的问题并使用不需要您经常阅读手册的工具:)

    【讨论】:

    • 搜索对我有用。顺便说一句,可以使用 :e ++ff=dos 更改行尾,然后使用 :w
    • 嘿,我更喜欢你的方式 Merlyn。我只是倾向于用我知道的方法来完成它。
    【解决方案2】:

    如何将 \r\n 替换为 \n,然后将 \n 替换为 \r\n。

    应该是这样的:

      :%s/\r\n/\n
      :%s/\n/\r\n
    

    【讨论】:

      【解决方案3】:

      要将所有 \r\n 的行结尾更改为 \n,请使用

      :%s/\r$//
      

      这将搜索所有后跟换行符的 \r 字符并仅用换行符替换它

      【讨论】:

        【解决方案4】:

        使用 dos2unix 或 unix2dos 之类的实用程序将行尾转换为所需的格式。对于 unix 和 windows 系统,这些实用程序都有本机实现。

        【讨论】:

          猜你喜欢
          • 2023-02-16
          • 2011-11-09
          • 2010-09-08
          • 1970-01-01
          • 2013-07-31
          • 2011-11-12
          • 1970-01-01
          • 2012-08-19
          • 2013-08-20
          相关资源
          最近更新 更多