如何在linux系统上使用vi以noeol和dos格式保存文本文件

时间:2013-02-12 21:10:42

标签: unix dos vi

我在x86_64 GNU / Linux上运行IBAMR模型(一组用于解决浸入式边界问题的代码)。 启动配置文件名为input2d。 当我用vi打开它时,我发现:

“input2d”[noeol] [dos] 251L,11689C

如果我编译IBAMR模型而不保存input2d,它编译并运行正常。 但是,如果我保存input2d,编译器会崩溃,说:

Warning in input2d at line 251 column 5 : Illegal character token in input

显然,这与unix在文件末尾添加换行符有关。 这是我的问题: 如何在dos格式中保存此文件并且在unix系统上没有vi中的尾随换行符?

2 个答案:

答案 0 :(得分:4)

使用vim -b <file>:set binary告诉vim不要在文件末尾添加换行符。来自:help binary

  

编写文件时,只有在写入最后一行的<EOL>时才会写入       原始文件中有一个(通常Vim会附加<EOL>       最后一行,如果没有;这会使文件更长)。看到       'endofline'选项。

答案 1 :(得分:0)

我在Vim Tips上找到了一个脚本:

http://vim.wikia.com/wiki/Preserve_missing_end-of-line_at_end_of_text_files

如果没有eol,它会自动启用“二进制”,但确保为文件的其余部分保留原始行结尾。