On 4/30/06, Gerald Lai <[EMAIL PROTECTED]> wrote:
On Sun, 30 Apr 2006, Yakov Lerner wrote:
> On 4/30/06, Gerald Lai <[EMAIL PROTECTED]> wrote:
>> On Sun, 30 Apr 2006, Yakov Lerner wrote:
>> > On 4/30/06, Bram Moolenaar <[EMAIL PROTECTED]> wrote:
>> >> > :help 'compatible'
>> >> >
>> >> > where (among other things) you can find the warning
>> >> >
>> >> > This is a special kind of option, because when it's set or
>> >> > other options are also changed as a side effect. CAREFUL:
>> >> or
>> >> > resetting this option can have a lot of unexpected effects:
>> >> Mappings
>> >> > are interpreted in another way, undo behaves differently, etc.
>> >> you
>> >> > set this option in your vimrc file, you should probably put it
>> >> the
>> >> > very start.
>> >> There is a remark about this right at ":help 'history'".
>> > Maybe behaviour of 'set nocp' can be differentiated depending on
>> > whether &cp was already off , or &cp was on. It's one thing if
>> > you do 'set nocp' and &cp was on, and another thing when
>> > you do 'set nocp' and &cp was already off. Maybe 'set nocp'
>> > doesn't need to reset options to default values when it was
>> > already 'nocp'.
>> But in Meino's case, it may have been that he was still in Vi compatible
>> mode when he set history.
> Meino's commands were in .vimrc which means nocp was
> already nocp.
>> The 'compatible' option is one that clobbers settings, but for a good
>> reason. It determines whether Vim should work like Vi, or take on the
>> modern Vim capabilities. It's a big switch.
> It's only a switch if 'nocp' was off and becomes on. If option
> X has value Y and I do 'set X=Y' I expect it to be noop, except maybe
> screen refresh. When option had different value, and I change it's
> value, then I agree it's a switch.
That would be nice, but how about options like 'filetype', 'fileformat'
or 'background' that need to be "refreshed"? Or options like
'indentkeys' or 'listchars' that could be an out-of-order
comma-separated list composed of anything?
There's too much overhead of checking whether X=Y just to do a noop.
Since when it's too much overhead to check the
value of binary option for equaliy or not equality ?