Las modelinas pueden parecer una forma de hacer esto, pero desafortunadamente no funcionarán. ModeLines únicas opciones de ajuste de soporte ( shiftwidth
, colorcolumn
y ese tipo de cosas). Puede usar una línea de modelo como vim: spell
para habilitar la corrección ortográfica de un documento. Sin embargo, spellgood!
es un comando Ex, no una opción. Además, específicamente no puede establecer algunas opciones (incluidas spellfile
, ver :help spellfile
) de modelines por razones de seguridad.
Usted podría diseñar un montón de autocommands específicos archivo en su vimrc, pero que sería llegar a ser realmente difícil de mantener en el tiempo, tediosa si alguna vez sucede que tiene dos archivos con el mismo nombre en diferentes lugares, y ¿No viaje "con el archivo."
En cambio, la mejor solución es probablemente construir su propia característica tipo línea de modo para agregar palabras analizando algún bloque de texto definido en el documento. Por ejemplo, puede buscar líneas que comiencen "spellgood:"
y agregar automáticamente el conjunto de palabras delimitadas por espacios a la lista interna de palabras:
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
Luego puede configurar un autocomando para, digamos BufReadPost * call AddLocalSpelling()
en su .vimrc
. En la práctica, es probable que desee hacer que la función anterior sea más robusta frente a los errores, y posiblemente usar comments
para ver qué es un token de comentario válido (elegí "
porque probé esto en un búfer VimL). Esta respuesta de SuperUsuario vinculada por JJoao en los comentarios proporciona una implementación similar pero alternativa que le permite usar bloques de palabras en lugar de una sola línea a la vez.
Este método requerirá que otros usen la misma función o al menos estén de acuerdo con las mismas reglas de análisis, por lo que no es perfecto. Pero podría tomarlo y promover la funcionalidad a un complemento si así lo desea, permitiendo un acceso más fácil para otros usuarios.
modeline
?