Marc Weber wrote: > I'm restructuring my vim scripts and I'm not sure in which namespace to > put some functions/ commands/ maps. > > By now there are these namespaces (copied from vim > help) as far as I know > |buffer-variable| b: Local to the current buffer. > |window-variable| w: Local to the current window. > |global-variable| g: Global. > |local-variable| l: Local to a function. > |script-variable| s: Local to a |:source|'ed Vim script. > |function-argument| a: Function argument (only inside a function). > |vim-variable| v: Global, predefined by Vim. > > Eg. I want to use the closeb script, my own HTML mappings to type ü > faster , matchit plugin and so on. > This functionality should be associated with not just HTML but also with > HTML like types like jsp,asp,... > > I think a very clean way would be doing something like this: > > function <namespace xml>:Close() > ... > > imap -namespace=xml <C-_> <C-r>=Close()<CR> > to associate maps/functions to namespaces which might be associated all > at once to buffer this way: > > ftplugin/xml.vim: > setlocal namespaces+=xml > ftplugin/html.vim: > setlocal namespaces+=xml > ftplugin/jsp.vim > setlocal b:namespaces+=xml > ftplugin/aspx.vim > setlocal b:namespaces+=xml > ftplugin/vim.vim > setlocal b:namespaces+=NERD_commentify > setlocal b:namespaces+=TlistMappings > setlocal b:namespaces+=regexpr > ftplugin/sh.vim > setlocal b:namespaces+=NERD_commentify > setlocal b:namespaces+=bash_mappings > setlocal b:namespaces+=make_executable > setlocal b:namespaces+=sh_menu > > Some scripts like Trigger.vim wouldn't be necessary any more because > removing/adding a functionality would be done in a clean way: > setlocal b:namespaces+/-=xml > > local settings should override namespace settings which should ovverride > global settings. (the way setlocal is preferred over set settings).. > > I would also introducde another folder like ftplugin which should > contain loading mappings/ functions for namespaces > eg > .vim/namespaces/xml.vim > > What do you think?
Much to complicated. In nearly all situations you can simply prepend an ID to the global name, such as xml_something(). Then it's much easier to find (grep) for where the name is used. -- >From "know your smileys": :-| :-| Deja' vu! /// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ download, build and distribute -- http://www.A-A-P.org /// \\\ help me help AIDS victims -- http://www.ICCF.nl ///