让 VIM 在混合行结尾处充当 Notepad++

让 VIM 在混合行结尾处充当 Notepad++

我在谷歌上到处搜索,发现了很多奇怪的 ^M 问题的解决方案,但找不到一个简单的解决方案:我怎样才能打开任何文件,比如在 Notepad++ 中并对其进行处理?我不想弄乱 LF 和 CR 的东西,无论如何 git 会在推送时纠正它。对于这个问题有一个“愚蠢”的解决方案吗?一件小事,我现在被迫在 World Evil OS 中工作,所以该解决方案应该适用于它。

答案1

:set binary

或者

$ vim -b file

这将使所有行结尾保持原样,并且行由单个<NL>字符分隔。我不建议使用它,但您明确要求“愚蠢的解决方案”。

答案2

我建议您修复行尾。

要将文件转换为\n行结尾:

:%s/\r$

要将文件转换为\r\n行结尾(未经测试):

:%s/[^\r]\n/\r\n/

您可以让 vim 在打开文件时自动执行以下操作之一:

autocmd BufRead, * normal :%s/\r$

您还可以使用dos2unixunix2dos 实用程序

答案3

我自己在 cygwin 上使用 vim - 如果文件被正确标记为 dos 文件,它不会显示 ^M 字符,我什至在底部设置了信息行来告诉我它是 dos 还是 unix类型文件。有些文件可能有 Windows 行结尾,但仍然显示为 unix - 如果我在这些文件上运行 dos2unix,它就会被修复,并且 vim 会正确标记它并在下次打开该文件时隐藏 ^M。

相关内容