Vim può anche rilevare i tipi di file ispezionando il loro contenuto (come per esempio se la prima riga contiene uno shebang bash), qui è una citazione da filetype.txt
file di aiuto:
Se il tipo di file può essere rilevata solo da ispezionare il contenuto del file
Creare la directory dell'utente runtime. Normalmente useresti il primo elemento dell'opzione 'runtimepath'. Esempio per Unix:
:!mkdir ~/.vim
Creare un file di script vim per fare ciò. Esempio:
if did_filetype() " filetype already set..
finish " ..don't do these checks
endif
if getline(1) =~ '^#!.*\<mine\>'
setfiletype mine
elseif getline(1) =~? '\<drawing\>'
setfiletype drawing
endif
Vedere $ VIMRUNTIME/scripts.vim per altri esempi. Scrivi questo file come "scripts.vim" nella tua directory runtime utente. Ad esempio, per Unix:
:w ~/.vim/scripts.vim
Il rilevamento funziona subito, senza bisogno di riavviare Vim.
Il tuo scripts.vim viene caricato prima dei controlli di default per i tipi di file, che significa che le tue regole sovrascrivono le regole predefinite in $ VIMRUNTIME/scripts.vim.
fonte
2010-04-05 08:02:22
ma la maggior parte degli script non ha un'estensione .sh? dovrei metterlo come estensione .sh solo per farlo funzionare? è la migliore pratica per nominare i tuoi script? e il suo bash ... quindi è ancora .sh? –
@ajsie: Non sono sicuro di quali script stai usando, ma la maggior parte degli script 'bash' che ho incontrato hanno effettivamente un suffisso' .sh'. Per specificare realmente * bash * in opposizione a solo 'sh', dovresti usare la riga di shebang' #!/Bin/bash' su un file '.sh'. –
scrivi semplicemente: set ft = sh e your good to go, OR, prefisso il tuo script con una modeline: "# vim: ft = sh" senza le virgolette ovviamente, E, suggerisco di ottenere qualcosa di meglio dell'opportunita sh filetype per script di bash perché non riconosce le cose correttamente, alcuni esempi sono sottostringhe $ {VAR: 1: 2}; & or ;; & <- modificatori di fine caso, e molte delle parole chiave specifiche di bash non sono riconosciute neanche. Certo, non ne trovi uno che è schifoso perché ci sono alcuni BAD ONES che circolano in giro lì fuori, ho usato un paio che era molto peggio del default di sh.vim. – osirisgothra