在/sf/answers/719601011/中,他们解释了如何重新打开常规文件以在其中fileformat=unix
显示s 。^M
它也适用于常规文件的命令行:
$ vim -c "e ++ff=unix" aaa.txt
a^M
b^M
c^M
Run Code Online (Sandbox Code Playgroud)
但是,从 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
Run Code Online (Sandbox Code Playgroud)
这是因为该命令告诉 vim 重新读取当前打开的文件。如何告诉它从一开始就以所需的文件格式打开输入?
这可能比用...打开 stain 的内容稍微强一些,但是您可以使用命令行标志ff=unix
启用二进制模式:-b
$ cat aaa.txt | vim -R -b -
Run Code Online (Sandbox Code Playgroud)
另请参阅:help 'binary'
,其中解释了'binary'
实现此功能的选项。(-b
在读取作为参数传递的文件之前,命令行参数有效地启用了此设置。)
从:help 'binary'
:
此外,
'fileformat'
并且'fileformats'
不会使用选项,该文件的读取和写入就像'fileformat'
“unix”(单个<NL>
分隔行)。
正如您所看到的,这与设置有所不同ff=unix
,但效果非常相似。此外,'binary'
在编辑过程中启用还会产生其他副作用,例如对'textwidth'
和之类的选项'expandtab'
,但在这种情况下,这对您来说可能是可以接受的(甚至是理想的)。再次检查:help 'binary'
完整的详细信息。:help edit-binary
可能也会有帮助。