【问题标题】:Find \n and replace with \r\n in VS Code在 VS Code 中查找 \n 并替换为 \r\n
【发布时间】:2020-09-23 08:06:06
【问题描述】:

我有一个只接受 Windows \r\n 的旧系统,我想在 VS Code 中编辑一个只有 \n 的文件以拥有 \r\n

我正在尝试使用正则表达式替换:

但这会将文字 \r 放入而不是空白字符。

我尝试使用 SHIFT+ENTER 在替换中添加换行符:

但这只是输入\n

如何更改使用的换行符并将文件保存在 VS Code 中?

【问题讨论】:

  • 我认为你必须关闭正则表达式,因为它会在你的情况下检测到新行。
  • 使用命令Change End of Line Sequence
  • 您的方法不起作用,因为搜索和替换对话框中的换行似乎是一种抽象,因此您无需为不同的 EOL 样式制作不同的表达式。无论如何,这个程序似乎最多支持三种不同的正则表达式引擎,具体取决于设置和上下文,我怀疑它们已经稍微定制了。 (What flavor of Regex does Visual Studio Code use?)。

标签: visual-studio-code


【解决方案1】:

在右边的底栏有文字“LF”,点击它并选择“CRLF”。或按Ctrl+Shift+P 并输入Change End of Line Sequence

不知道为什么你的方法不起作用。 \x0D\15 也不会得到认可。我会称之为错误。


对于多个文件,在 Linux 上,我会在编辑器之外进行,例如,使用

find somedir -name '*.someext' -exec perl -pi -e 's/\n/\r\n/' {} +

【讨论】:

    【解决方案2】:

    只需按 Ctrl+H 并选择正则表达式替换。然后开始输入:

    查找内容:^\n

    替换为:\r\n

    【讨论】:

    • 你读过这个问题吗?有我这样做的屏幕截图。这已经有一年多了,所以也许从那时起它就已经修复了。
    • @Keith,不,你根本不对。在您的屏幕截图上,您做了一些其他的事情。就我而言,我的选择帮助我反对你在屏幕截图上的方法
    • 我能看到的唯一区别是您在\n 之前添加了^ 以避免替换它,除非它位于开始/行开始(取决于m 标志),但是正则表达式\n finds 很好 - 你的答案是对 find 正则表达式的调整,但问题是替换将 \r\n 视为文字字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 2018-09-05
    • 2015-07-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    相关资源
    最近更新 更多