vim c / c + + ftplugin scripts

0

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?

    
por user14416 04.05.2013 / 00:36

2 respostas

0

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 .

    
por 04.05.2013 / 00:45
0

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.

    
por 04.05.2013 / 21:51

Tags