我保存文件vim
而不使用文件结尾换行符的方法是:
:set binary
:set noeol
:wq
noeol 在没有二进制模式的情况下什么都不做,这本身就很奇怪。但读了之后,:help binary
我仍然对那里的某些事情不确定。
When this option is switched on a few options will be changed (also when it already was on): 'textwidth' will be set to 0 'wrapmargin' will be set to 0 'modeline' will be off 'expandtab' will be off Also, 'fileformat' and 'fileformats' options will not be used, the file is read and written like 'fileformat' was "unix" (a single <NL> separates lines). The 'fileencoding' and 'fileencodings' options will not be used, the file is read without conversion. NOTE: When you start editing a(nother) file while the 'bin' option is on, settings from autocommands may change the settings again (e.g., 'textwidth'), causing trouble when editing. You might want to set 'bin' again when the file has been loaded.
我仍然可以看到 UTF8 字符,因此文件编码并没有完全消失。我从未使用过 expandtab(使用制表符来识别,但即使我没有使用,expandtabs 也是错误的)。但除此之外,在实践中还会发生什么?
我厌倦了文件末尾的新行,并考虑以二进制模式打开所有文件,并默认设置 noeol。我会遇到很多麻烦吗?
答案1
如果您没有遇到任意编码(即所有 ASCII 或与您的 Vim 匹配的编码),并且不受带有^M
Window 文件结尾的文件的困扰,那么您的方法应该可以正常工作。
Vim 并不是用来编辑此类文件的(从 Unix 的角度来看,它们并不完整),因此很难做到。不过,我的PreserveNoEOL 插件尝试让一切变得更加舒适,这样你就不必担心机械问题。
答案2
从 vim 7.4 开始,你可以使用:set nofixeol