What is the actual value of using <plug>? I've always seen the same pattern:

map <unique> <Leader>XY <Plug>MyscriptMyfunction
noremap <unique> <script> <Plug>MyscriptMyfunction <SID>Myfunction
noremap <SID>Myfunction :call <SID>Myfunction()<CR>

As far as I understand, <plug> allows users of a (third party) plugin
to define their own mappings to symbols defined in the plugin as
<SID>Something.  This is apparently necessary because the actual value
of <SID> is not known in advance and it could change in the course of
time.  However, in order to make use of <plug>, the plugin author is
expected to craft a name which is globally unique, for instance by
following the convention '<Plug> scriptname mapname',  so that this
name does not clash with other from other plugins.  In the example
above, this would correspond to '<plug>MyscriptMyfunction'. But then,
what good is the whole <SID> thing, if the plugin author is still
expected to use unique global identifiers (here MyscriptMyfunction)?
Wouldn't the following line solve the problem given the same
assumptions (instead of the three above)?

map <unique> <Leader>YX :call MyscriptMyfunction()<CR>

I'm evidently missing the main point and I'd be most grateful if
somebody could show me the light :-)

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