1

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

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

如果我在不保存 input2d 的情况下编译 IBAMR 模型,它会编译并运行良好。但是,如果我保存 input2d,编译器会崩溃,说:

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

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

4

2 回答 2

4

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

写入文件时,<EOL>仅当原始文件中有最后一行时才写入最后一行(通常,<EOL>如果没有,Vim 会在最后一行附加一个;这会使文件更长)。请参阅“下线”选项。

于 2013-02-12T21:15:59.053 回答
0

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

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

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

于 2015-03-09T21:49:51.113 回答