这让我疯了。但是,类似的SO问题不包含答案,所以在这里它的形式略有不同:
有办法:
将文件末尾的vim show 0x0a
显示为空行?
假设#1无法完成,我该如何删除eol?没有线,所以没有什么可以删除。
例如:
vim -b myfile
(目前没有eol):w
:q
vim -b myfile
- 空白行已消失,但hexdump
显示0x0a
仍然存在。这是不一致的行为。答案 0 :(得分:1)
您可以在set noeol
模式中使用binary
:
:帮助noeol
When writing a file and this option is off and the 'binary' option
is on, no <EOL> will be written for the last line in the file. This
option is automatically set when starting to edit a new file, unless
the file does not have an <EOL> for the last line in the file, in
which case it is reset.
答案 1 :(得分:1)
Vim在文件末尾显示0x0a的方式是它在[noeol]
文件时打开文件时没有抱怨:edit
(以你期望的那种“反向逻辑” )。正如您可能已经读过的那样,Vim(和Unix)的理念是尾部换行符应该在那里。
基于这种理念,我不建议故意创建没有尾随换行符的文件。但是,有一些方法可以让Vim尊重并维护这些现有文件。我的PreserveNoEOL plugin提供了一种毫不费力地做到这一点的方法。
答案 2 :(得分:1)
我不知道如何查看最后一个空行,但要删除只是打开文件,运行:
:set binary noendofline
这将删除它的最后一个(不可见)空行。
警告:由于binary
会修改某些设置(例如textwidth
)!