#1 楼
有一些警告,您可以使用Vim的二进制模式来完成。看来您可能想使用命令vim -b +'set list' somefile
或者,您可以在
.vimrc
中添加以下内容::set binary
:set list
重要的是必须先设置二进制模式,然后才能将相关文件读入缓冲区。 Vim读入文件后,为时已晚。此技巧取决于更改Vim读取文件的方式。特别地,您需要Vim不要尝试猜测文件的特定类型
<EOL>
。行分隔符检测,但它也做很多其他事情:将
'textwidth'
设置为0 将
'wrapmargin'
设置为0 取消设置
'modeline'
取消设置
'expandtab'
,所以您可能不想在
.vimrc
中使用它;最好使用命令行版本,并且仅适用于需要这种特殊类型显示的文件。有关更多信息:
:help 'binary'
:help edit-binary
:help file-read
:help file-formats
:help 'fileformat'
评论
但是它也做很多其他事情,因为二进制文件是带有一些自动命令的FileType还是某种内置的,不可避免的东西?
–曼上尉
16 Sep 14 '14:36
用这个词,我的意思是介绍紧随其后的清单。
–领主
16-09-14在14:49
是的,我只是没有引用全部内容:)我的意思是说它是做这些事情的,因为它在自动命令中使用了一些称为Binary的FileType还是只是内置的东西?
–曼上尉
16年9月14日在14:54
嗯对这些都与文件类型无关(但是在文件格式中却很受关注)。这是二进制模式本身的一部分。参见:help'binary'。也许:help'fileformat'。
–领主
16年9月14日在14:59
#2 楼
如果添加到~/.vimrc
中:set ffs=unix
set list
这将始终将
CR
显示为^M
,并且将LF
显示为$
。仅以CRLF
结尾的文件作为dos文件,并将CRLF
显示为$
。通过设置ffs=unix
,您可以强制vim始终作为unix文件打开,因此CR被视为多余的字符。注意:尽管如此,在修改和保存dos文件时要小心。如果按
ENTER
,它将仅插入LF
。您需要通过键入CR
来手动插入CTRL+V, CTRL+M
。
评论
因此,如果我正确理解您的要求,那么您想为DOS文件添加Hello%$之类的东西(其中%为CR,$为LF)?使用list / listchars设置是不可能的,而且我也真的无法在VimScript中提供一种方法来实现此目的。@Carpetsmoker是的。除了设置列表外,还有一种方法可以让CR和LF显示为特定字符?
您也许可以用某种颜色来突出显示它们,但是没有任何方法可以将它们显示为不容易破解的特定字符。
我认为一次可以看到CR或LF,但不能一次看到。
设置stl + = \ [%{&ff =='mac'?'CR':&ff =='unix'?'LF':'CRLF'}]