Modelines pode parecer uma maneira de fazer isso, mas infelizmente eles não vão funcionar. Modelines apenas opções de configuração de suporte ( shiftwidth
, colorcolumn
, esse tipo de coisa). Você pode usar uma modelagem como vim: spell
para ativar a verificação ortográfica de um documento. No entanto, spellgood!
é um comando Ex, não uma opção. Além disso, você especificamente não pode definir algumas opções (incluindo spellfile
, consulte :help spellfile
) de modelos por motivos de segurança.
Você poderia criar um monte de comandos automáticos específicos do arquivo no vimrc, mas isso se tornaria muito difícil de manter ao longo do tempo, tedioso se você tiver dois arquivos com o mesmo nome em locais diferentes e não viaje "com o Arquivo."
Em vez disso, a melhor solução é provavelmente criar seu próprio recurso de modelo para adicionar palavras analisando algum bloco de texto definido no documento. Por exemplo, você pode procurar linhas começando com "spellgood:"
e adicionar automaticamente o conjunto de palavras delimitado por espaço após à lista interna de palavras:
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
Em seguida, você pode configurar um comando automático para, digamos, BufReadPost * call AddLocalSpelling()
no seu .vimrc
. Na prática, você provavelmente desejaria tornar a função acima mais robusta diante de erros e possivelmente usar comments
para ver o que é um token de comentário válido (eu escolhi "
porque testei isso em um buffer VimL). Essa resposta do Superusuário vinculada por JJoao nos comentários fornece uma implementação semelhante, mas alternativa, que permite usar blocos de palavras em vez de apenas uma única linha de cada vez.
Esse método exigirá que outras pessoas usem a mesma função ou, pelo menos, concordem com as mesmas regras de análise, portanto, não é perfeito. Mas você pode aceitá-lo e promover a funcionalidade de um plug-in, se desejar, permitindo um acesso mais fácil a outros usuários.
modeline
?