On Mon, 4 Dec 2006, Bill McCarthy apparently wrote:
> Instead of using an autocmd, you could place those maps in a
> file called tex.vim in your local ftplugin directory. Place
> this single line in such a file:
> map <buffer> <c-a> :echo 'It worked!'<CR>
OK, I did this.
But there is still a problem.
Suppose I have defined::
imap <buffer> <unique> ;fn %<cr>\footnote{%<cr>}<cr>%<esc>-i
in my tex_ai.vim file in my local ftplugin directory.
I create the buffer ``:e c:\temp.tex``
then I leave the buffer by deleting it ``:bd``
and then later I decide to reopen it ``:e c:\temp.tex``.
Now I get a bunch of E227 errors, saying the mapping already
exists. This must mean that there Vim tries to redefine the
mapping.
BUT I had tried to rule this out: at the top of my plugin
I have::
if exists("b:loaded_tex_ai")
finish
endif
let b:loaded_tex_ai=1
But of course ``b:loaded_tex_ai`` is gone once I use ``:bd``.
But the mappings are apparently still around!
I do not really understand the variable convetions.
Should I have created ``s:loaded_tex_ai`` instead?
Might that work?
The problem does not arise if I use ``:bw`` instead of ``:bd``.
But then I lose other information too.
What is the right way to manage this?
Hints or suggestions?
Thank you,
Alan Isaac