Como carregar manualmente uma ftplugin após a startup no vim?
Pergunta
Digamos que eu carrego um arquivo .txt no vim. Então eu quero mudar o filetype=html
Mas também quero uma ftplugin associada carregada. Como posso fazer isso?
Eu tentei coisas como: :set filetype plugin on
e :set filtype plugin_name
e também :filetype plugin_name
em etc etc., mas não consigo carregar manualmente a ftplugin. Alguma sugestão?
eu tentei :filetype=html
e depois :filetype plugin on
e outras combinações sem sucesso.
EDIT: Eu não consegui "completamente" resolver isso com nenhuma das respostas (mas talvez algo individual para minha configuração). No entanto, as respostas de Pierre foram muito boas, então estou dando a ele a marca de seleção verde.
Solução
Tenho certeza de que quando você muda o tipo de arquivo usando :set ft=X
Ele carregará automaticamente o plug -in associado na sua pasta .vim/ftplugin. Por exemplo :set ft=html
Carregaria .vim/ftplugin/html.vim onde você carregaria plugins associados. No entanto BufEnter
e BufNew
As cargas do plug -in associadas aos arquivos HTML não serão carregadas, pois a configuração de um novo FileType não aciona esses eventos. Portanto, se você possui plugins específicos para HTML no seu .vimrc que são carregados com BufNew
ou BufEnter
Você pode colocá -los em um arquivo .vim/ftpluging/html.vim.
Você sempre pode adicionar uma modelo ao seu arquivo de texto que altera o FileType. Por exemplo <!-- vim: ft=html -->
.
Outras dicas
:filetype on
:set filetype=html
Acabei de ter a mesma situação em que os ftplugins não estavam carregando, mesmo que eu tivesse um arquivo Perl aberto. Acontece que minha cópia de Vim (de Git for Windows
) não veio com ftplugin.vim
e ftplugof.vim
Veja como cheguei a essa percepção:
:filetype
- Verifique se o plug -in FileType está realmente ativado.
- Verifique se o plug -in FileType está realmente ativado.
:scriptnames
- Imprima a lista de scripts de origem, não descobriu nenhum script de
ftplugin\
é proveniente. - Eu não percebi naquele momento, mas eu deveria ter notado que não vi
ftplugin.vim
lá.
- Imprima a lista de scripts de origem, não descobriu nenhum script de
Verifique se o diretório vim (
{git-path}/share/vim/vim{version}/
) tem oftplugin.vim
eftplugof.vim
- Esses arquivos são adquiridos quando você executa
:filetype plugin on
e:filetype plugin off
- Esses arquivos são adquiridos quando você executa
Para consertar isso, peguei os arquivos ausentes do Arquivos de tempo de execução do vim e copiado para onde deveria ir.
O VIM carrega automaticamente o plug -in correto quando você altera o FileType
:set ft=python
Você pode iniciar o vim no modo detalhado:
vim -V
Isso mostrará o que o VIM está executando. Se você abrir um arquivo e definir manualmente o FileType, o VIM mostrará se estiver carregando o plug -in correto.
:f something.html
:w
:e