我正在尝试设置 vim 跳过在最后一行或 eof 上添加 eol,我已经尝试过这个
:set binary
:set noeol
:w
这并不完美,会导致二进制覆盖文件类型以供以后使用。
任何其他选项来设置它,我不需要在最后一行换行。
我想添加一个我认为同样有用的答案。所选答案always删除文件的 EOL,即使它们一开始就有 EOL。这可能是您想要的行为,也可能不是。在我看来我想要preserve我最初打开该文件时的 EOL。
我的建议是稍微修改一下。放set binary
在你的顶部.vimrc
文件。这样任何文件都将以二进制模式打开。如果他们没有 EOL,那么 vim 会检测到这一点并将其保留为 NOEOL。如果他们有 EOL,那么它会识别它为有 EOL 并保留它。
如果你愿意new文件也没有 EOL 那么你应该设置,
au BufNewFile * set noeol
该章节的命令是如果您always想要NOEOLever。需要注意的一件事是,如果您的文件底部有空格,那么您将在末尾丢失空格。这是因为发生以下情况,
- VIM 读取文件并看到末尾有一个换行符,并认为,好吧,这是一个带有换行符的文件(无论是否处于二进制模式)。
- When you then write a file it executes the autocmd,
- 设置二进制模式
- set noeol (这会删除 VIM 的 EOLthought正在结束文件并将其删除。
- 文件被保存
- 现在您的文件中少了一个 EOL。
此过程将重复,直到 EOL 消失并且文件以单个字符结束。根据我的设置,会发生什么情况:文件被打开,如果 VIM 看到least一个 EOL 然后将其保留在内部。如果您保存该文件,无论它是什么(您可以通过键入来检查set eol?
。如果您想摆脱内部存储的 EOL,您只需说set noeol
然后保存并BOOM,最后一个 EOL 被删除。
哎呀,我打这个字的时候气喘吁吁。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)