我在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中的尾随换行符?
答案 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,它会自动启用“二进制”,但确保为文件的其余部分保留原始行结尾。