I started using a plugin that conflicts with my existing maps, but instead of remapping all of it’s maps, I just want to add a prefix. I thought I’d be able to do this with LocalLeader.
Vimdoc says:
<LocalLeader>is just like<Leader>, except that it uses
“maplocalleader” instead of “mapleader”.<LocalLeader>is to be used
for mappings which are local to a buffer.
It seems that the only way to set localleader is to set a global variable (the docs don’t mention this, but b:maplocalleader didn’t work):
let maplocalleader = '\\'
And I don’t see how I’d cleanly unset that variable (an autocmd that clears it after plugins are setup!?)
Is there a way to do this? Or is LocalLeader only to give one global prefix and one filetype-specific prefix?
Your last hunch is correct. If the plugin uses
<Leader>(and it should unless it’s a filetype plugin), there’s no use in messing withmaplocalleader.Remapping is canonically done via
<Plug>mappings, which the plugin hopefully offers. Some plugins do define a lot of similar mappings, some of those define ag:pluginname_mappingprefix(or so) variable to save you from having to remap all mappings individually. If your plugin doesn’t, maybe write a suggestion / patch to the plugin author.