Linux 上的 Vi:显示 DOS 格式文件的 ^M 行尾

Linux 上的 Vi:显示 DOS 格式文件的 ^M 行尾

在 Solaris 上,如果您在 vi 中打开具有 Windows 行尾的文件,则会在每一行末尾显示为 ^M。

在 Linux 上,vi 更聪明,能够理解 Windows 文件格式,并且不会显示 ^M。

是否有一个设置可以使 Linux vi 在这方面的行为与 Solaris 相同?

我们经常遇到的一个问题是从 (Windows) 开发环境中复制一个 shell 脚本,然后忘记将其 dos2unix,然后当它不能正常工作时,我们会感到困惑。在 Solaris 上,只要您使用 vi 该文件,问题就会很明显,但在 Linux 上则不是这样。

谢谢。

答案1

尝试:set ffs=unix在启动 vi(或在 vimrc 中设置为默认)时显示所有 CR 字符为^M

vi 根据是否遇到以 LF 或 CR/LF 结尾的行来自动猜测使用哪种格式。

答案2

显示当前文件的 DOS 行结尾:

:e +ff=unix

这将强制文件格式为 unix,它将呈现CR^M


要使此设置永久生效,请添加到~/.vimrc

set ffs=unix

请注意,.vimrc 设置是ffs,而不是ff

答案3

:e ++ff=unix

(每 fork0) 54321

相关内容