Tuesday, September 29, 2015

Re: vimdiff options by file type?

On Tuesday, September 29, 2015 at 11:04:25 AM UTC-4, Gary Johnson wrote:
> On 2015-09-29, dbr517 wrote:
> > I would like to set different vimdiff options by filetype . . . in
> > particular, I would like to ignore whitespace by default, but NOT
> > ignore whitespace for python files.
> >
> > I added the following to the rc file, but I still get "iwhite" set
> > in diffopt for python files:
> >
> > set diffopt+=iwhite
> > if &filetype == 'python'
> > set diffopt-=iwhite
> > endif
> >
> > I'm probably missing something obvious :-))
>
> It's obvious only after some experience with Vim. It's in the
> documentation, but not in one place.
>
> The problem is that Vim determines filetypes after it reads
> ~/.vimrc; 'filetype' is not set when that if statement is executed.
>
> One way to fix that is to use these commands instead:
>
> set diffopt+=iwhite
> au FileType python set diffopt-=iwhite
>
> Note that 'diffopt' is a global option; it can't be set differently
> for different buffers. Therefore, the autocommand above will remove
> "iwhite" from 'diffopt' whenever you edit a Python file and not
> restore "iwhite" if you later diff two buffers of a different
> filetype. Whether that's a problem for you and how you might fix
> that depends on how you use Vim.
>
> Regards,
> Gary

Gary -

Excellent, thanks! That explains some other errors in my .vimrc too :-) I can actually use the autocommand because I commonly run ONLY the diff in a given session; if I'm doing extensive editing it's in a different session.

Dan

--
--
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 vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments: