diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2018-01-21 22:02:09 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2018-01-21 22:02:09 +1300 |
commit | 2505497a1d382e09fbf68469c64fc7d3c00aa4c0 (patch) | |
tree | 29678da783ceffdaaeb587ddf24bdb2a1464bcf2 /vim/vimrc | |
parent | Remove a baseless assertion I made in a config (diff) | |
download | dotfiles-2505497a1d382e09fbf68469c64fc7d3c00aa4c0.tar.gz dotfiles-2505497a1d382e09fbf68469c64fc7d3c00aa4c0.zip |
Tweak 'cpoptions' C flag instead of 'nocompatible'
In order for the configuration to be successfully loaded, the only
option in the vi 'cpoptions' settings for 'compatible' is "C". From
:help 'cpoptions':
> C Do not concatenate sourced lines that start with a backslash.
> See line-continuation.
With this flag removed from 'cpoptions' if 'compatible' does happen to
be set, the configuration parses just fine, and then we can put it back
at the end if we need to.
This is a less aggressive approach than just turning off 'compatible'
entirely if it happens to be set, whether because the user wanted it
that way before loading the configuration or because Vim was started as
ex(1).
My plugins and ftplugins are all conditional on 'compatible' not being
set, anyway.
Diffstat (limited to 'vim/vimrc')
-rw-r--r-- | vim/vimrc | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -1,5 +1,10 @@ -" Don't try to be vi-compatible, even if invoked as ex or with -u specified -set nocompatible +" If we're in compatible mode, ensure that the 'C' option that disallows line +" continuations is stripped out, as they're heavily used in this +" configuration for readability; we'll put it back later +if &compatible + let s:cpoptions_save = &cpoptions + set cpoptions-=C +endif " Use different keys for global and local leaders if has('eval') @@ -29,3 +34,10 @@ if v:version >= 701 silent! colorscheme sahara endif endif + +" If we're in compatible mode, put 'cpoptions' back the way we found it at the +" start of this configuration, even though it's the current year +if exists('s:cpoptions_save') + let &cpoptions = s:cpoptions_save + unlet s:cpoptions_save +endif |