Le modeline possono sembrare un modo per farlo, ma sfortunatamente non funzioneranno. Modelines solo le opzioni di impostazione di supporto ( shiftwidth
, colorcolumn
, quel genere di cose). Puoi usare un modello come vim: spell
per abilitare il controllo ortografico per un documento. Tuttavia, spellgood!
è un comando Ex, non un'opzione. Inoltre, per motivi di sicurezza , non è possibile impostare alcune opzioni (incluso spellfile
, vedi :help spellfile
) da modeline.
Si potrebbe predisporre un mucchio di autocomandi file specifici nel vostro vimrc, ma che sarebbe diventata davvero difficile da mantenere nel tempo, noioso se mai capita di avere due file con lo stesso nome in luoghi diversi, e non sarebbero di viaggio "con la file."
Invece, la soluzione migliore è probabilmente quella di creare la tua funzione simile alla modellistica per aggiungere parole analizzando alcuni blocchi di testo definiti nel documento. Ad esempio, puoi cercare le righe che iniziano con "spellgood:"
e aggiungere automaticamente il gruppo di parole delimitato da spazi all'elenco di parole interno:
function! AddLocalSpelling ()
" Save the cursor position.
let cursor_position = getcurpos()
let location = searchpos("\"spellgood:", "c")
while location != [0, 0]
let words = split(getline(location[0]))
" The first 'word' will be the sentinel token itself (unless)
" we found the token in an embedded string or comment...
if words[0] == "\"spellgood:"
call remove(words, 0)
for word in words
execute "silent spellgood! " . word
endfor
endif
let location = searchpos("\"spellgood:", "W")
endwhile
" Restore cursor position.
call setpos(".", cursor_position)
endfunction
Quindi puoi impostare un autocommand per, diciamo BufReadPost * call AddLocalSpelling()
nel tuo .vimrc
. In pratica probabilmente vorresti rendere la funzione sopra più robusta di fronte agli errori, e possibilmente usare comments
per vedere cos'è un token di commento valido (l'ho scelto "
perché l'ho testato in un buffer VimL). Questa risposta di SuperUser collegata da JJoao nei commenti fornisce un'implementazione simile ma alternativa che ti consente di usare blocchi di parole invece di una sola riga alla volta.
Questo metodo richiederà ad altri di usare la stessa funzione o almeno di concordare sulle stesse regole di analisi, quindi non è perfetto. Ma potresti prenderlo e promuovere la funzionalità di un plug-in, se lo desideri, consentendo un accesso più facile per altri utenti.
modeline
?