我在谷歌上到处搜索,发现了很多奇怪的 ^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$
您还可以使用dos2unix
和unix2dos
实用程序。
答案3
我自己在 cygwin 上使用 vim - 如果文件被正确标记为 dos 文件,它不会显示 ^M 字符,我什至在底部设置了信息行来告诉我它是 dos 还是 unix类型文件。有些文件可能有 Windows 行结尾,但仍然显示为 unix - 如果我在这些文件上运行 dos2unix,它就会被修复,并且 vim 会正确标记它并在下次打开该文件时隐藏 ^M。