Les modelines peuvent sembler être un moyen de le faire, mais malheureusement, elles ne fonctionneront pas. ModeLines seules options de réglage (support shiftwidth
, colorcolumn
, ce genre de choses). Vous pouvez utiliser une modélisation comme vim: spell
pour activer la vérification orthographique d'un document. Cependant, spellgood!
c'est une commande Ex, pas une option. De plus, vous ne pouvez pas spécifiquement définir certaines options (y compris spellfile
, voir :help spellfile
) à partir des modèles pour des raisons de sécurité.
Vous pouvez créer un tas d'autocommandes spécifiques à un fichier dans votre vimrc, mais cela deviendrait très difficile à maintenir au fil du temps, fastidieux si jamais vous aviez un fichier portant le même nom à différents endroits et que vous ne voyagiez pas "avec le fichier."
Au lieu de cela, la meilleure solution est probablement de créer votre propre fonctionnalité de type modeline pour ajouter des mots en analysant un bloc de texte défini dans le document. Par exemple, vous pouvez rechercher des lignes commençant par "spellgood:"
et ajouter automatiquement l'ensemble de mots délimité par des espaces après à la liste de mots interne:
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
Ensuite, vous pouvez configurer une autocommande pour, disons BufReadPost * call AddLocalSpelling()
dans votre .vimrc
. En pratique, vous voudriez probablement rendre la fonction ci-dessus plus robuste face aux erreurs, et éventuellement utiliser comments
pour voir ce qu'est un jeton de commentaire valide (j'ai choisi "
parce que je l'ai testé dans un tampon VimL). Cette réponse SuperUser liée par JJoao dans les commentaires fournit une implémentation similaire mais alternative qui vous permet d'utiliser des blocs de mots au lieu d'une seule ligne à la fois.
Cette méthode exigera que d' autres utilisent la même fonction ou au moins s'accordent sur les mêmes règles d'analyse, donc ce n'est pas parfait. Mais vous pouvez le prendre et promouvoir la fonctionnalité en un plugin si vous le souhaitez, ce qui permet un accès plus facile pour les autres utilisateurs.
modeline
?