Loading ...
Sorry, an error occurred while loading the content.

46250Re: Bug: ":confirm w" only works once

Expand Messages
  • Michael Schaap
    Mar 1, 2007
    • 0 Attachment
      On 28-Feb-2007 22:38, Bram Moolenaar wrote:
      > Michael Schaap wrote:
      >> When editing a read-only file, ":confirm w" only works the first time
      >> you use it in a session. The second time you try to use it, you simply
      >> get an error message, as if you didn't use ":confirm".
      >> The same problem occurs when using ":set confirm".
      >> To recreate:
      >> $ echo Hello > hello.txt
      >> $ chmod 400 hello.txt
      >> $ vim -u NONE hello.txt
      >> :set nocompatible " or you won't be able to overwrite at all
      >> A, World<Esc>
      >> :confirm w
      >> 'readonly' option is set for "qq".
      >> Do you wish to write anyway?
      >> (Y)es, [N]o: y
      >> A!<Esc>
      >> :confirm w
      >> E505: "qq" is read-only (add ! to override)
      >> This is using 7.0.203, but it has been happening for quite a while. An
      >> old 6.3 does the same thing.
      >> – Michael
      > What happens when 'readonly' is set is that the ":confirm" asks you if
      > you want to override it. If you select "yes" then it will behave as if
      > you did ":w!". If you do the same with 'readonly' off you don't get the
      > prompt, but writing fails for ":w", only ":w!" works.
      And indeed, as Yakov remarked (and is documented in vim), ":w!" resets
      But although the 'readonly' option is no longer set, the file is still
      (correctly) read-only on the file system. Perhaps it should only reset
      'readonly' if this isn't the case (e.g. 'readonly' manually set, or when
      running "view")? After all, the option _is_ initially set when the file
      is read-only (although this doesn't appear to be documented).

      > Note that when 'readonly' is set then ":w" results in E45, while a
      > read-only file gives E505. They are two different things, but both are
      > overruled with ":w!". We don't have a separate "!" for each situation.
      > Perhaps the E505 should also trigger ":confirm w" to ask for writing
      > anyway. That's more difficult, but would be what you expect.
      You mean that ":confirm w" should trigger a dialog in case of E505,
      right? Yeah, that would make sense.
      In the meantime, reading the 'readonly' help entry, I found the
      'cpoptions' 'Z' flag, which solves my problem, so I added it to my .vimrc.


      - Michael
    • Show all 7 messages in this topic