vim - 使用 vim 编辑最后一行没有 EOL 标记但有 CRLF 行结尾的文件

标签 vim binaryfiles line-endings newline

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

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

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

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

最佳答案

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

关于vim - 使用 vim 编辑最后一行没有 EOL 标记但有 CRLF 行结尾的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2678683/

相关文章:

c - 读取二进制文件时如何分别对每个结构体字段使用 fread() ?

git 行结尾 : renormalize does not seem to checkout the right line endings

vim - 如何将 Vim 重置为普通的 vanilla 安装?

ruby-on-rails - Vim 中的 ruby​​ 代码格式错误

vim - 使用调用跟踪调试 Vim 插件

java - 如何在java中反向播放.mp3文件

python - 在 Python 中加载格式化二进制文件的最有效方法

linux - 使用vim读取bash shell时如何获得大纲模式

windows - 在 Windows 上,如何检测文件的行尾?

git - 为什么 Git 即使在 `git checkout --` 之后仍坚持认为文件已被修改?