Tuesday, September 29, 2015

Re: vimdiff options by file type?

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

--
--
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: