'Add local themes at runtime (during vim session).
:param str key:
Matcher name (in format ``{matcher_module}.{module_attribute}`` or
``{module_attribute}`` if ``{matcher_module}`` is
``powerline.matchers.vim``). Function pointed by
``{module_attribute}`` should be hashable and accept a dictionary
with information about current buffer and return boolean value
indicating whether current window matched conditions. See also
:ref:`local_themes key description <config-ext-local_themes>`.
:param dict config:
:ref:`Theme <config-themes>` dictionary.
:return:
``True`` if theme was added successfully and ``False`` if theme with
the same matcher already exists.'

def add_local_theme(self, key, config):

    self.update_renderer()
    matcher = self.get_matcher(key)
    theme_config = {}
    for cfg_path in self.theme_levels:
        try:
            lvl_config = self.load_config(cfg_path, u'theme')
        except IOError:
            pass
        else:
            mergedicts(theme_config, lvl_config)
    mergedicts(theme_config, config)
    try:
        self.renderer.add_local_theme(matcher, {u'config': theme_config})
    except KeyError:
        return False
    else:
        self.setup_kwargs.setdefault(u'_local_themes', []).append((key, config))
        return True
