Bug#438560: Should -N/-C override 'compatible' settings in vimrc files?
James Vega
jamessan at debian.org
Tue Aug 12 23:49:04 UTC 2008
On Thu, Feb 07, 2008 at 10:20:27PM +0100, Bram Moolenaar wrote:
>
> James Vega wrote:
>
> > On Wed, Feb 06, 2008 at 09:43:33PM +0100, Bram Moolenaar wrote:
> > > The main reason to do it this way is that when a startup script contains
> > > "set nocp" the following lines often depend on this. If one would start
> > > "vim -C" and the -C would cause the "set nocp" line to be ignored, the
> > > rest of the script would be misinterpreted. Especially for ":map"
> > > commands with things like "<C-A>". With 'nocompatible' this means
> > > CTRL-A, with 'compatible' this is 5 separate characters.
> >
> > The initial bug was specifically that "vim -C" with "set nocp" in a
> > startup script resulted in a Vim session that didn't have 'compatible'
> > set as per the man page. I notice that the help for -C indicates the
> > ":set nocompatible" command will override -C so maybe it would be
> > sufficient to add this to the man page as well. A similar note should
> > be added to the help/man page for -N.
> >
> > This would be a simpler solution, although I still think that if the
> > user is specifically requesting (no)compatible mode at the command line,
> > they should be able to deal with side-effects it may have on startup
> > scripts.
>
> Well, a possible solution would be to do "set compatible" after all the
> startup stuff is done. I suppose that would work as expected.
In thinking about this patch again, my original patch needs some more
work (which I've attached). The changes are as follows:
1) The original behavior of immediately calling change_compatible() when
-N/-C are parsed is restored. This allows the startup vimrc files to
have conditional behavior based on which compatibility mode Vim will
end up in.
2) change_compatible() is again called immediately after the startup
vimrc files are sourced (only if -N/-C were given on the
command-line) so that the proper compatibility mode is set while
loading plugins.
3) If the gui is started, change_compatible() is called one more time
(only if -N/-C were given on the command-line) immediately after the
gvimrc files are sourced to ensure that any changes they make to 'cp'
are overridden to follow the command-line options.
--
James
GPG Key: 1024D/61326D40 2003-09-02 James Vega <jamessan at debian.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cp-after-init.diff
Type: text/x-diff
Size: 1915 bytes
Desc: not available
Url : http://lists.alioth.debian.org/pipermail/pkg-vim-maintainers/attachments/20080812/f1ea37f2/attachment.diff
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
Url : http://lists.alioth.debian.org/pipermail/pkg-vim-maintainers/attachments/20080812/f1ea37f2/attachment.pgp
More information about the pkg-vim-maintainers
mailing list