2010-04-08 17 views
28

Quando lavoro su un file PHP, ad esempio il tipo di file predefinito è php. Questo ha senso, tuttavia quando quel file PHP ha HTML, il tipo di file è ancora solo PHP. Per alcuni plugin ciò significa che ottengo le funzionalità PHP per quel plugin, ma mi manca la funzionalità HTML. Una situazione più specifica in cui ciò accade è con il mio plug-in snippet. Ottengo frammenti di php e non frammenti HTML quando sto modificando un file php.Più tipi di file in vim

possibili soluzioni a questo (che, ovviamente, non mi piace, da qui la mia pubblicazione di questa domanda) sono:

  1. aggiungere una mappa per scorrere i diversi tipi di file quando io sono l'editing diverse sezioni del file.
  2. aggiorna il mio file di snippet php per includere anche i frammenti di codice HTML (mentre questo funzionerebbe per l'esempio sopra, non risolve il problema fondamentale).

Quindi, C'è un modo per modificare un file utilizzando più tipi di file contemporaneamente in vim?

Modifica: Per riferimento futuro, il plug-in specifico di cui sto parlando si chiama snipMate. http://www.vim.org/scripts/script.php?script_id=2540

+0

Modalità PHP in (g) VIM ha il supporto per quattro lingue nello stesso file: HTML, JavaScript (sebbene non così ben fatto come 'ft = javascript'), CSS e PHP. Rileverà i confini di ciascuno. Il plugin è stato scritto pensando ai programmatori web. – amphetamachine

+0

Ricevo l'evidenziazione della sintassi che funziona come previsto per i file su cui lavoro con lingue diverse nello stesso file, ma per quanto riguarda gli altri plug-in? Stai dicendo che dovrebbero lavorare con (g) vim già? Non vedo come potrebbe essere. – chadgh

+0

Non c'è un modo completamente generale. Il plugin in questione dovrebbe essere riscritto nello stesso modo in cui si trova il file di sintassi PHP. Sono entrambi script vim; puoi guardare il file di sintassi e vedere come rileva i limiti, quindi provare ad applicarlo. In generale, è un problema difficile, perché non tutto ciò che fa un plugin è così ben delimitato come l'evidenziazione della sintassi. – Cascabel

risposta

41

È possibile specificare di utilizzare più tipi di file allo stesso tempo. Ad esempio:

:setfiletype html.php 

Ma la maggior parte dei plug-in dei file e dei file di sintassi non è progettata per questi casi. Vedere anche: help 'filetype'

+2

Perfetto! Per il plugin di cui ero principalmente preoccupato, questo ha funzionato perfettamente. Modifica di un file PHP digito: setfiletype html.php.js.css e il plug-in snippet include i file snippet per tutti i tipi di file specificati. Grazie – chadgh

+0

Eccellente. Ho avuto esattamente la stessa domanda riguardo a snipMate – devth

+0

Non ho assolutamente nulla a che fare con la programmazione. Grazie! per averlo fatto meglio – Prospero

Problemi correlati