What vim does it differently when -b is enabled?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

What vim does it differently when -b is enabled?

Peng Yu
Hi,

`man vim` says the following. But I am not sure what exact -b does.

-b          Binary mode.  A few options will be set that makes it
possible to edit a binary or executable file.


Could anybody help explain this and provide a minimal binary file that
shows the difference between with -b and without -b? Thanks.

--
Regards,
Peng

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: What vim does it differently when -b is enabled?

Tim Chase
On 2015-05-23 17:32, Peng Yu wrote:
> -b          Binary mode.  A few options will be set that makes it
> possible to edit a binary or executable file.
>
> Could anybody help explain this and provide a minimal binary file
> that shows the difference between with -b and without -b? Thanks.

":help -b" gives a little more detail but I'm not sure whether I've
found a bug.

tim@laptop:~/tmp$ cat testvimrc
set nocompatible
set modeline
set sw=4
set ts=4
set et
tim@laptop:~/tmp$ xxd testfile
0000000: 2f2a 2076 693a 2073 6574 2065 7870 616e  /* vi: set expan
0000010: 6474 6162 2073 773d 3220 7473 3d32 3a20  dtab sw=2 ts=2:
0000020: 2a2f 0d0a 6669 7273 7420 6c69 6e65 0d0a  */..first line..
0000030: 0973 6563 6f6e 6420 6c69 6e65 2077 6974  .second line wit
0000040: 6820 7461 620d 0a                        h tab..


When when opened with

  vi -u testvimrc testfile

it has the following settings

  :set modeline? ts? et? sw? bin? ff?
    modeline
    tabstop=2
    expandtab
    shiftwidth=2
  nobinary
    fileformat=dos

And when opened with

  vi -u testvimrc -b testfile

it has the following settings

  :set modeline? ts? et? sw? bin?
    modeline
    tabstop=2
    expandtab
    shiftwidth=2
    binary
    fileformat=unix

Based on the ":help -b", I would have expected that 'noexpandtab' and
'nomodeline' would appear in that output, and that my ts/sw would be
4 (set in the vimrc) rather than the ts/sw from the file's modeline
contents.  It does correctly prevent munging of CR/LF by setting
ff=unix and 'binary'.

-tim




--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: What vim does it differently when -b is enabled?

Christian Brabandt
(redirected to vim-dev)
Hi Tim!

On Sa, 23 Mai 2015, Tim Chase wrote:

> On 2015-05-23 17:32, Peng Yu wrote:
> > -b          Binary mode.  A few options will be set that makes it
> > possible to edit a binary or executable file.
> >
> > Could anybody help explain this and provide a minimal binary file
> > that shows the difference between with -b and without -b? Thanks.
>
> ":help -b" gives a little more detail but I'm not sure whether I've
> found a bug.
>
> tim@laptop:~/tmp$ cat testvimrc
> set nocompatible
> set modeline
> set sw=4
> set ts=4
> set et
> tim@laptop:~/tmp$ xxd testfile
> 0000000: 2f2a 2076 693a 2073 6574 2065 7870 616e  /* vi: set expan
> 0000010: 6474 6162 2073 773d 3220 7473 3d32 3a20  dtab sw=2 ts=2:
> 0000020: 2a2f 0d0a 6669 7273 7420 6c69 6e65 0d0a  */..first line..
> 0000030: 0973 6563 6f6e 6420 6c69 6e65 2077 6974  .second line wit
> 0000040: 6820 7461 620d 0a                        h tab..
>
>
> When when opened with
>
>   vi -u testvimrc testfile
>
> it has the following settings
>
>   :set modeline? ts? et? sw? bin? ff?
>     modeline
>     tabstop=2
>     expandtab
>     shiftwidth=2
>   nobinary
>     fileformat=dos
>
> And when opened with
>
>   vi -u testvimrc -b testfile
>
> it has the following settings
>
>   :set modeline? ts? et? sw? bin?
>     modeline
>     tabstop=2
>     expandtab
>     shiftwidth=2
>     binary
>     fileformat=unix
>
> Based on the ":help -b", I would have expected that 'noexpandtab' and
> 'nomodeline' would appear in that output, and that my ts/sw would be
> 4 (set in the vimrc) rather than the ts/sw from the file's modeline
> contents.  It does correctly prevent munging of CR/LF by setting
> ff=unix and 'binary'.

Looks like despite what is being said in the documentation, the value
from the initialization file is used. That might be a bug or a
documentation inconsistency, I don't know.

Best,
Christian
--
Wie man sein Kind nicht nennen sollte:
  Joe Kerr

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.