Por que o meu método de dobra não está sendo configurado no meu arquivo ftplugin?

0

Eu tenho um arquivo chamado $HOME/.vim/ftplugin/stylus.vim com este conteúdo:

setlocal foldmethod=indent
setlocal foldnestmax=1
setlocal foldlevelstart=1
echo 'Stylus file loaded!'

Tudo, exceto foldmethod , está definido corretamente e "Arquivo de caneta carregado!" é ecoado quando eu abro um arquivo de caneta (apenas para confirmar que ele realmente é carregado).

Mas foldmethod está definido como marker . Por que não está sendo definido corretamente? É possível que o arquivo de sintaxe (ou similar) esteja substituindo a minha configuração?

Edit: Eu tenho grepped através de todos os arquivos em vim-stylus para "foldmethod" e "fdm" e não encontrei nada, então definitivamente não está substituindo o meu foldmethod.

Edite novamente: acabei de descobrir que você pode rastrear onde uma configuração foi alterada pela última vez usando :verbose set foldmethod? e descobri que o método de dobra está definido em $HOME/.vim/ftplugin/html.vim , que é assim:

setlocal foldmethod=marker
setlocal foldmarker=Section:,End\ of\ section

Agora, por que o meu arquivo html ftplugin foi executado para o arquivo da minha caneta?

    
por Hubro 07.01.2016 / 12:59

2 respostas

0

Tenho notado que os scripts ftplugin vim para muitos idiomas podem ser executados para um único arquivo. Por exemplo, um arquivo haml pode ter um coffeescript, css etc., e acredito que, como a sintaxe haml do vim inclui a incorporação desses idiomas, o Vim executa os scripts ftplugin para eles.

Por esse motivo, criei o hábito de agrupar meus arquivos ftplugin em um bloco como este:

if &filetype == 'haml'
  " ...
end

Isso garante que minhas configurações sejam aplicadas apenas aos tipos de arquivo a que se destinam.

    
por 05.02.2016 / 07:20
1

Você pode determinar qual script definiu pela última vez uma opção com o comando :verbose . Neste caso:

:verbose set foldmethod?

(com o ponto de interrogação como parte do comando)

É provável que você queira colocar seu ftplugin em ~/.vim/after/ftplugin/ em vez de ~/.vim/ftplugin/ para que ele seja carregado depois e substitua o sistema ftplugin.

    
por 07.01.2016 / 21:45

Tags