2009-12-28 9 views
14

Dire che carico un file .txt in Vim. Quindi voglio cambiare il filetype=html ma voglio anche un ftplugin associato caricato. Come posso fare questo?Come caricare manualmente un ftplugin dopo l'avvio in Vim?

Ho provato cose come: :set filetype plugin on e :set filtype plugin_name avanti e anche :filetype plugin_name su ecc ecc, ma io non riesco a caricare manualmente il ftplugin. Eventuali suggerimenti?

Ho provato :filetype=html e quindi :filetype plugin on e altre combinazioni senza successo.

EDIT: Non ero in grado di risolvere "completamente" questo con nessuna delle risposte (ma forse è qualcosa di individuale nella mia configurazione). Tuttavia, le risposte di Pierre sono state davvero buone, quindi gli ho dato il segno di spunta verde.

risposta

8

Sono abbastanza sicuro che quando si cambia il tipo di file utilizzando :set ft=X caricherà automaticamente il plugin associato nella cartella .vim/ftplugin. Per esempio. :set ft=html caricherà .vim/ftplugin/html.vim dove caricheresti qualsiasi plugin associato. Tuttavia, i carichi di plugin BufEnter e BufNew associati ai file html non verranno caricati poiché l'impostazione di un nuovo tipo di file non attiva questi eventi. Quindi, se nel tuo .vimrc sono caricati specifici plugin html caricati con BufNew o BufEnter, potresti invece metterli in un file .vim/ftpluging/html.vim.

È sempre possibile aggiungere una modeline al file di testo che modifica il tipo di file. Per esempio. <!-- vim: ft=html -->.

+0

In particolare ho problemi con questo plugin per snipMate che ha uno dei suoi script in ~/.vim/ftplugin/- Arrivo lì usando il plug-in firefox di tutto il testo che apre la pagina web come file .txt. Devo farlo perché sto lavorando con un CMS. – Rob

+0

Il file esatto che NON viene caricato è: ~/.vim/ftplugin/html_snip_helper.vim (che snipMate utilizza per chiudere i tag html, ad esempio digitando un re TAP crea
) – Rob

+2

Gli script nella cartella ftplugin DEVONO avere il nome del tipo di file, ad es python.vim, ruby.vim, html.vim. Questi sono definiti in filetype.vim. La mia ipotesi è che html_snip_header.vim venga caricato dal plugin snipMate che viene caricato nella directory dei plugin giusto? Aggiungi un file html.vim sotto ftplugin che carica html_snip_header.vim direttamente e dovrebbe avere lo stesso effetto. –

0
:f something.html 
:w 
:e 
+0

Hai provato? Funziona;) –

+0

Siamo spiacenti, sì ho provato questo senza alcun risultato. Penso che Pierre abbia un punto nei suoi commenti sopra al di sotto del suo post; Proverò a inserire un html.vim per trovare l'altro ftplugin. – Rob

+0

Ho installato snipMate. Ecco una sequenza dei miei comandi: vi a.txt : f a.cpp: w: e quindi inserisco per e premere e inserisce il ciclo per come documentato. Forse lo proverai ancora un altro? Quando lo fai: e vim fa esattamente la stessa sequenza di azioni che aprirebbe il file come "vi " che implica il caricamento di tutti i plugin necessari. –

3
:filetype on 
:set filetype=html 
+0

Grazie. Ho provato ma non ha funzionato per me. – Rob

+0

Strano. L'ho provato e funziona per me. Qualcosa di strano in corso ... – maxaposteriori

+6

Filetype ha tre impostazioni: rilevamento, caricamento plug-in e rientro. : filetype on imposta solo il rilevamento, prova ": plug-in filetype su" o anche ": rientro plugin filetype su". – c089

1

Vim carica automaticamente il plugin corretto quando si cambia il tipo di file

:set ft=python 

È possibile avviare Vim in modalità dettagliata:

vim -V 

Questo ti mostrerà ciò che vim sta eseguendo. Se apri un file e imposti manualmente il tipo di file, vim mostrerà se sta caricando il plug-in corretto.

3

Ho avuto la stessa situazione in cui i ftplugin non venivano caricati anche se avevo un file Perl aperto. Risulta che la mia copia di Vim (da Git for Windows) non è venuto con ftplugin.vim e ftplugof.vim

Ecco come sono arrivato a questa realizzazione:

  1. :filetype

    • assegno che filetype plugin è davvero acceso.

  2. :scriptnames

    • stampa l'elenco degli script rintracciato, scoperto nessuno script da ftplugin\ è di provenienza.
    • Non me ne sono reso conto in quel momento, ma avrei dovuto notare che non ho visto ftplugin.vim lì.

  3. controllo se directory Vim ({git-path}/share/vim/vim{version}/) ha le ftplugin.vim e ftplugof.vim

    • questi file vengono acquistati quando si esegue :filetype plugin on e :filetype plugin off

Per risolvere questo problema, Ho afferrato i file mancanti dal Vim runtime files e copiato dove dovrebbe andare.

Problemi correlati