我正在尝试设置 vim 以跳过在最后一行或 eof 上添加 eol,我已经尝试过
:set binary
:set noeol
:w
这并不完美,因为二进制覆盖文件类型供以后使用。
设置此选项的任何其他选项,我不需要在最后一行换行。
我正在尝试设置 vim 以跳过在最后一行或 eof 上添加 eol,我已经尝试过
:set binary
:set noeol
:w
这并不完美,因为二进制覆盖文件类型供以后使用。
设置此选项的任何其他选项,我不需要在最后一行换行。
我想添加一个我认为可能有用的答案。选择的答案总是会删除文件上的 EOL,即使它们有一个开始。这可能是您想要的行为,也可能不是。在我看来,我想在最初打开文件时保留EOL。
我的建议是稍作修改。放在文件set binary
的顶部.vimrc
。这样任何文件都将以二进制模式打开。如果他们没有 EOL,那么 vim 将检测到这一点并将其保留为 NOEOL。如果他们有 EOL,那么它会将其识别为具有 EOL 并保留它。
如果您希望新文件也没有 EOL,那么您应该设置,
au BufNewFile * set noeol
如果你总是想要 NOEOL ,那么小伙子的命令就是。要注意的一件事是,如果您的文件底部有空格,那么最后您将丢失空格。这是因为发生了以下情况,
此过程将重复,直到 EOL 消失且文件以单个字符结尾。使用我的设置,会发生什么是文件被打开,如果 VIM 看到至少一个 EOL,那么它会在内部保留它。如果您保存该文件,无论它在那里(您可以通过键入来检查set eol?
。如果您想摆脱内部存储的 EOL,您只需说set noeol
,然后保存并BOOM,最后一个 EOL 将被删除。
哇哦,我在打字时很啰嗦。
这是我在某处发现的更好:
au BufWritePre * :set binary | set noeol
au BufWritePost * :set nobinary | set eol
来自 vim 文档:
'binary' 'bin' boolean (default off)
local to buffer
{not in Vi}
This option should be set **before** editing a binary file. You can also
因此,您应该使用vim -b
or :e ++bin file
,或使用 重新加载:e! ++bin
。
我想出了这个:
" php remove eol from end of file
autocmd FileType php setlocal noeol binary fileformats="mac,unix,dos"
谢谢你们。
干杯。