On Sep 17, 10:25 pm, "Benjamin R. Haskell" <[email protected]> wrote:
> On Sat, 17 Sep 2011, Spiros Bousbouras wrote:
> > If you define a syntax for a buffer , move away and then return is the
> > syntax remembered or do all the syntax commands have to be executed
> > again? Some tests I did indicate it's the latter.
>
> It should be the former.
>
> > Specifically (with simplifications) my  .vimrc  (on Linux) has
>
> > autocmd BufReadPost,BufNewFile *.myfile source ~/myfile.vim
>
> > and file  ~/myfile.vim  has
>
> > if exists("b:myfile")
> >    finish
> > endif
>
> > let b:myfile = 1
> > syntax match special /special/
> > highlight special term=bold cterm=bold
>
> Either the simplifications have eliminated something important (though I
> don't know what) or something else on your system is interfering.  The
> way you've set it up isn't the way a typical filetype-related plugin
> should be laid out (see: :help new-filetype ).  The way you've coded it
> will work, but it will get messy, quickly, if you want to add multiple
> filetypes.

I did read  :help new-filetype  and I thought that the method
mentioned there is too complicated that's why I didn't follow it. It
seems much simpler to me to have different file types be recognised
by extension and then load syntax and anything else I want by
sourcing an appropriate script. Works well enough up to now but I
only have 3-4 different file types.

> > When I edit  file.myfile  the highlighting works correctly but if I
> > move away and return then there's no highlighting.
>
> Does some plugin from your system set up some kind of autocmd on the
> WinEnter, WinLeave, BufEnter, or BufLeave event(s)?
>
> :au WinEnter,WinLeave,BufEnter,BufLeave

The above command returns
--- Auto-Commands ---

and nothing else. Apart from that , I have
let &loadplugins=0
in  /etc/vim/vimrc  so I don't think that any plugin is causing the
behaviour.

> On my system, I see about a dozen BufEnter entries, but none that would
> affect a *.myfile buffer.  Two in the filetypedetect augroup, one in
> FileExplorer, and the ones in no group are vimball-related.  WinEnter
> only lists an autocmd in the matchparen group.

Here's a version of the problem with no simplifications:
File a contains
This is a special line

File b is empty. I do
vim -u NONE a b
:let &verbose=20
:syntax match special /special/
:highlight special term=bold cterm=bold

The word "special" gets highlighted.
2Ctrl-^
"b" 0 lines, 0 characters
Ctrl-^
"a" 1 line, 23 characters

Now "special" is no longer highlighted.
:syntax
No Syntax items defined for this buffer
:syntax match special /special/

The word "special" gets highlighted again. Note that this time I
didn't have to enter the highlight command to get the highlighting.


I would be especially interested if anyone who runs Debian Lenny
would try the above test.

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

Reply via email to