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
.vimrc
via$ 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.