Não use runtimepath
para isso, o diretório after
( :h after-directory
) é o que você precisa.
Coloque esses dois arquivos em ~/.vim/after/ftplugin
.
Eu faço algumas adições ao tempo de execução regular na configuração do meu vim. Eu adiciono a rtp
um diretório onde há ftplugin
diretório, no qual eu tenho dois arquivos: c.vim
e cpp.vim
. Nestes arquivos eu determino alguns comandos com o mesmo nome, mas com conteúdo diferente que depende do arquivo, é o arquivo c e cpp.
Em c.vim:
execute "nnoremap <silent> ".g:formatterTrigger." :call Formatters#Uncrustify#C()<Cr>"
No cpp.vim:
execute "nnoremap <silent> ".g:formatterTrigger." :call Formatters#Uncrustify#Cpp()<Cr>"
Mas eu vejo pelo comando scriptnames
que ambos os arquivos ft estão carregados. E o c.vim é carregado o primeiro assim nos arquivos cpp eu tenho c comandos. Como resolver isso?
Devido à sua similaridade, o tipo de arquivo cpp é baseado no c . Portanto, ambos os arquivos são originados, como você observou. Mas isso não é problema, porque o cpp vem em último lugar, e irá sobrescrever o c ; você pode verificar com
:verbose execute 'nnoremap' g:formatterTrigger
Em geral, isso não é nada para se preocupar (a menos que você defina :map <unique>
, que se queixaria nesse caso), e você já conhece os comandos como :scriptnames
para solucionar esse problema.