Pergunta

Eu tenho usado o Vim e patógeno por um tempo, e as coisas estavam funcionando bem, mas recentemente comecei a ter problemas de ordem de carregamento com minha configuração do ftplugin.

O problema específico que estou tendo agora é que modo python está substituindo minhas configurações do ftplugin.eu tenho um ~/.vim/ftplugin/python.vim que contém a seguinte linha:

setlocal textwidth=119

python-mode vem com seu próprio arquivo ftplugin, que também define textwidth, em ~/.vim/bundle/python-mode/ftplugin/python/pymode.vim.

O problema é que o Vim agora está carregando o arquivo ftplugin do modo python depois meu arquivo ftplugin, então estou terminando com seu textwidth=79. Recentemente tive que reinstalar o MacPorts e acho que algo deve ter mudado na configuração padrão.

Eu tentei vários truques envolvendo desativar a detecção de tipo de arquivo/plugin antes de invocar o patógeno, por vários outro respostas, mas nenhuma delas está ajudando.

Através do uso de verbose set textwidth? e alguns echomsg depuração, sei que ambos os arquivos ftplugin estão sendo invocados e que estão sendo invocados na ordem errada (para minhas necessidades).

Existe alguma maneira de forçar o Vim/pathogen a invocar meus arquivos ftplugin após os dos plugins?

Eu até tentei colocar minhas configurações em ~/.vim/after/plugin/pymode.vim, mas é carregado imediatamente após o patógeno configurar o plugin, então ele ainda é executado antes ftplugin arquivos, que só são carregados quando eu edito um arquivo Python.

Foi útil?

Solução

Acontece que talvez isso nunca tenha funcionado como eu pensava.Eu não sabia que o Vim também suportava ~/.vim/after/ftplugin, então consegui mover minhas substituições para ~/.vim/after/ftplugin/python.vim e obter o comportamento que eu esperava.Não gosto de responder minhas próprias perguntas sobre SO, mas espero que isso ajude outra pessoa.

Outras dicas

Plain Vim carrega os scripts do plugin em alfabético ordem.Isto é de :help load-plugins

... all directories in the 'runtimepath' option will be
searched for the "plugin" sub-directory and all files ending in ".vim"
will be sourced (in alphabetical order per directory), also in
subdirectories.

Então você pode definir a ordem de carregamento do plugin renomeando <filetype>_plugin.vim para <filetype>/35plugin.vim.35 é a ordem de carregamento desejada.Eu acho que isso também deveria funcionar com o Pathogen, renomeando os diretórios de plugins dentro bundle, mas não testei.

Ainda estou procurando uma resposta mais geral para esse problema de ordem de carregamento

Pelo que eu sei, você realmente não pode fazer isso com o Pathogen.É muito fácil com o NeoBundle.O Pathogen é realmente mínimo, não oferece muita flexibilidade - ele faz apenas uma coisa e faz bem.Se você está procurando configurabilidade, acho que está usando a ferramenta errada.

EDITAR:Não tenho muita certeza sobre ftplugins, mas os pacotes em geral são carregados conforme você os especifica (com Vundle/NeoBundle).Então percebo que esta talvez não seja a resposta mais relevante.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top