在https://stackoverflow.com/a/10280014/447503他们解释了如何重新打开常规文件并在其中fileformat=unix
显示s 。^M
它也适用于常规文件的命令行:
$ vim -c "e ++ff=unix" aaa.txt
a^M
b^M
c^M
但是,从 stdin 读取时失败:
$ cat aaa.txt | vim -R -c "e ++ff=unix" -
Vim: Reading from stdin...
Error detected while processing command line:
E32: No file name
Press ENTER or type command to continue
a
b
c
这是因为该命令告诉 vim 重新读取当前打开的文件。如何告诉它从一开始就以所需的文件格式打开输入?
答案1
这可能比用...打开污点的内容稍强一些ff=unix
,但是您可以使用以下命令启用二进制模式-b
命令行标志:
$ cat aaa.txt | vim -R -b -
也可以看看:help 'binary'
,它解释了'binary'
实现此功能的选项。 (-b
在读取作为参数传递的文件之前,命令行参数有效地启用了此设置。)
从:help 'binary'
:
此外,
'fileformat'
并且'fileformats'
不会使用选项,该文件的读取和写入就像'fileformat'
“unix”(单个<NL>
分隔行)。
正如您所看到的,这与设置有所不同,ff=unix
但效果非常相似。此外,'binary'
在编辑过程中启用还会产生其他副作用,例如对'textwidth'
和 之类的选项'expandtab'
,但在这种情况下,这对您来说可能是可以接受的(甚至是理想的)。再次检查:help 'binary'
完整的详细信息。:help edit-binary
可能也会有帮助。