如何在Vim中编辑一个文件,使得除了最后一行以^M^J结尾外,其他所有行都以^M结尾?

5
我有一堆需要查看的文件。这些文件中的所有行都以^M(\x0D)结尾,只有最后一行以^M^J(\x0D\x0A)结尾。
很明显,Vim判断该文件类型为DOS,导致整个文件内容显示在一行上,如下所示:
some text foo^Mmore text and^Ma few control-m^Ms and more and more

由于我不想改变文件的内容,是否有一种Vim设置可以让我按照我期望的格式查看这些带有新行的文件?


http://vim.wikia.com/wiki/File_format - ajreal
2个回答

3

如果您不介意在底部添加一个单独的^J字符,您可以将fileformats(注意结尾的s)设置为mac并重新加载缓冲区:

:set fileformats=mac
:edit

或者您可以按照以下方式启动编辑器:

vim -R "+set fileformats=mac" "+edit" <filename>
-R(只读)选项是因为您表示不想更改文件。我没有找到一种不涉及重新加载缓冲区的方法。

感谢您的输入。您帮助我发现我需要设置set fileformats=dos,unix,mac而不是dos,unix - René Nyffenegger

-1

试试这个:

:set fileformat=unix

不过我没有那种文件,所以无法真正验证。


1
在编辑文件时设置 fileformatfileencoding 不会重新加载它。它只有在保存时才会生效。最好使用 :e! ++ff=unix 来重新加载。 - Benoit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接