Como configurar o feitiço para ignorar alguns ambientes no LaTeX

10

Existe uma maneira de dizer ao vim para não verificar a ortografia de parte de um documento de látex? Por exemplo, bloco de código usando o mintedambiente ou URLs em \url{}?

(Não sei se é relevante para a verificação ortográfica, mas estou usando o plug-in vimtex para editar arquivos de látex.)

Grégoire
fonte
11
Veja (também) isto: vi.stackexchange.com/a/4003/1800
VanLaser 26/08/2015
O @Gregoire também mencionou esta questão no vimtex / Issues / # 219 .
Karl Yngve Lervåg

Respostas:

10

Você pode desativar a verificação ortográfica de itens de sintaxe adicionando-os a um cluster junto com @NoSpell. Você pode ler :help spell-syntaxpara obter algumas informações e ver o seu arquivo de sintaxe tex, que provavelmente já contém vários exemplos. Se você digitar, :tabe $VIMRUNTIME/syntax/tex.vimdeverá obter o arquivo de sintaxe tex em uma nova guia. Se você pesquisar, /\c@NoSpellpoderá ver uma linha como

 syn cluster texMathZoneGroup add=@NoSpell

O texMathZoneGroupcluster foi definido anteriormente no script para conter vários itens de sintaxe e aqui @NoSpellé adicionado ao cluster para desativar a verificação ortográfica desses itens. Receio não poder dizer exatamente onde melhor fazer a alteração para seus itens de sintaxe específicos, pois não conheço muito bem esse arquivo de sintaxe. Pode haver um cluster óbvio já onde você pode simplesmente adicionar @NoSpellou pode ser necessário criar um cluster com contains=os itens em questão. Também é uma boa idéia fazer uma cópia do arquivo de sintaxe no diretório de tempo de execução do usuário e aplicar suas alterações lá, em vez de alterar o arquivo de sintaxe distribuído, ou aplicar suas alterações em um after/syntax/tex.vimou outro script que é executado após o carregamento do arquivo de sintaxe. .

Como você usa um plug-in, ele pode ter opções relacionadas a quais itens são verificados ortográficos. Eu não uso, vimtexmas Karl Lervåg é bastante ativo aqui e, se você chamar a atenção dele, pode responder isso por você.

jjaderberg
fonte
Hoje não existem opções desse tipo vimtex, não. Mas parece fazer sentido ignorar a ortografia em ambientes cunhados, para que eu possa atualizar o plugin de forma correspondente. Obrigado pela boa explicação!
Karl Yngve Lervåg
Eu olhei em volta no código e não encontrei uma região existente para o ambiente cunhado, então tentei criar a minha assim: syn region mintedZone start="\\begin{minted}" end="\\end{minted}" contains=@NoSpellmas isso não parece ajudar. Alguma sugestão?
Grégoire
@ Grégoire Por favor, continuemos esta discussão na edição vimtex .
Karl Yngve Lervåg
5

Você pode adicionar suas próprias regras de sintaxe para, por exemplo ~/.vim/after/syntax/tex.vim. Para impedir a verificação ortográfica dentro de um comando como \url, você pode usar o seguinte código:

syntax match texStatement '\\command' nextgroup=texMyCommand
syntax region texMyCommand matchgroup=Delimiter start='{' end='}' contained contains=@NoSpell

Aqui texStatemente Delimitersão grupos que são definidos pelo plugin sintaxe interna, ver :e $VIMRUNTIME/syntax/tex.vim.

Se você deseja entender os comandos acima, posso recomendar as seguintes seções de ajuda:

Karl Yngve Lervåg
fonte