3

我经常需要编辑脚本文件,其解释器将在文件最后一行具有 EOL 标记的文件视为错误(即文件将 CRLF 视为“换行符”,而不是“行尾”)。

目前,我在 Vim 中使用二进制模式(命令行上的 -b)打开这些文件。它会自动检测最后一行缺少 EOL 并适当地设置“noeol”选项,从而防止它在最后一行写入 EOL。

因为文件有 CRLF 行尾,所以我在行尾有很多^Ms (因为它似乎只以二进制模式解释 Unix 风格的行尾)。我无法在文本模式下打开它,因为非二进制文件会忽略“noeol”选项。

这很烦人,我总是要记住^M在每行的末尾手动输入!有什么方法可以强制它在二进制模式下接受 DOS 样式的行尾,或者强制它在文本模式下听 EOL 选项?

4

2 回答 2

0

你可以在编辑之前运行 dos2unix 命令吗?

于 2010-04-20T21:16:20.463 回答
0

是的,您不需要^M在每一行手动输入 a;那会很乏味!尝试输入:

:set ff=dos

您可能还会发现这篇文章很有用:change end-of-line format for dos-unix

在进一步审查中,可能需要全局搜索和替换,所以试一试。(我今天早些时候对此进行了测试,它适用于在 Windows XP 中使用 gvim 编辑的 unix 文件,而不是二进制模式。)

:%s/^M//g

完全按照所示键入该命令^M,但 是一个特殊字符。你产生它的方式是按下Ctrlv一起然后点击Enter(在点击输入之前放开CRTL + V)

于 2010-04-21T02:17:53.553 回答