在 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