Muitas configurações (como recuo) estão vinculadas a filetypes , de qualquer forma. Você também pode definir mapeamentos e comandos buffer-local , de modo que várias partes de seus requisitos apenas exigem uso consistente de abstrações internas (leia :help ftplugin ).
Para coisas globais, eu recomendaria manter as diferenças a um mínimo absoluto, pois isso evita a criação de memória muscular e edição eficiente "sem pensar". Existem várias implementações possíveis para passar um sinalizador discriminativo ao Vim ao iniciar:
- separe
.vimrcvia$ vim -u {vimrc}. Mas como você deseja manter tudo em um arquivo, o seguinte é melhor: - via variável:
$ vim --cmd "let pluginmode='python'", useif g:pluginmode ==# 'python' ... else ...dentro de seu .vimrc. - através da variável de ambiente
$ PLUGINMODE=python vim, useif $PLUGINMODE ...
Plugins
Muitos plug-ins usam o protetor de inclusão g:loaded_{pluginname} canônico, com o qual você pode ativá-los / desativá-los em ~/.vimrc . Além disso, se você usar um gerenciador de plug-ins, provavelmente poderá colocar os comandos Bundle ... dentro de condicionais.
Comutador do modo dinâmico
Todos os itens acima assumem que você saia e reinicie o Vim para uma mudança nos modos. Se você quiser fazer isso na hora, é muito mais difícil, e será difícil se livrar completamente de comandos / mapeamentos anteriores.