简体   繁体   中英

Why the -b(binary) option doesn't work in vim?

As vim doc said, I can use the -b option to open a binary file.


-b      Binary mode.  File I/O will only recognize <NL> to separate
        lines.  The 'expandtab' option will be reset.  The 'textwidth'
        option is set to 0.  'modeline' is reset.  The 'binary' option
        is set.  This is done after reading the vimrc/exrc files but
        before reading any file in the arglist.  See also
        |edit-binary|.  {not in Vi}

I use this command to open vim:

$ vim --cmd 'set et' -u NONE -b

I type this command to view options:

:set et? bin?

  expandtab
  binary

The et ( expandtab ) option wasn't reset. Why?
Thanks for your help!

Well the issue is, simply, that --cmd -c or +cmd arguments are executed after processing the other flags. This makes sense, as it would not effectively do anything otherwise.

 :verbose set et?

would tell you exactly that. In case you need a workaround for your particular sample vim +'set binary' (unlikely since et != binary)

You are right on the docs for --cmd. So it comes down to the order in which command line flags are interpreted, which is basically 'undefined'. Although

This is done after reading the vimrc/exrc files but before reading any file in the arglist

could be taken to imply 'before processing other command line arguments'.

Note The '+' commands essentially go with specific files and are (AFAICT) processed in the order in which they appear, even when intermixed with filename arguments.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM