Як налаштувати заклинання для ігнорування деяких середовищ у LaTeX


10

Чи є спосіб сказати vim не перевіряти правопис частини документа з латексу? Наприклад, кодовий блок з використанням mintedсередовища або URL-адрес у \url{}?

(Я не впевнений, що це стосується перевірки орфографії, але я використовую плагін vimtex для редагування файлів латексу.)


1
Дивіться (також) це: vi.stackexchange.com/a/4003/1800
VanLaser

@Gregoire також згадав це питання у vimtex / issues / # 219 .
Карл Інгве Лервег

Відповіді:


10

Ви можете відключити перевірку правопису для елементів синтаксису, додавши їх у кластер разом із @NoSpell. Ви можете ознайомитись :help spell-syntaxіз деякою інформацією та подивитися свій текстовий файл синтаксису, який, швидше за все, містить уже кілька прикладів. Якщо ви введете, :tabe $VIMRUNTIME/syntax/tex.vimви повинні отримати текстовий файл синтаксису на новій вкладці. Якщо потім здійснити пошук, /\c@NoSpellви можете побачити такий рядок

 syn cluster texMathZoneGroup add=@NoSpell

texMathZoneGroupКластер був визначений раніше в сценарії містить ряд елементів синтаксису та тут @NoSpellдодається в кластер , щоб відключити перевірку орфографії для цих елементів. Боюся, я не можу точно сказати, де найкраще внести зміни для ваших конкретних синтаксичних елементів, оскільки я не знаю цього синтаксичного файлу дуже добре. Можливо, вже є очевидний кластер, де ви можете просто додати @NoSpell, або, можливо, доведеться створити кластер, contains=про який йдеться. Також непогано зробити копію файлу синтаксису у своєму каталозі виконання програми та застосувати свої зміни там, а не змінити розподілений синтаксичний файл, або застосувати свої зміни в after/syntax/tex.vimіншому сценарії, який працює після завантаження синтаксичного файлу. .

Оскільки ви використовуєте плагін, він може мати параметри, пов’язані з тим, які елементи перевіряються орфографією. Я не використовую, vimtexале Карл Лервег тут досить активний, і, якщо ви привернете його увагу, можете відповісти на це за вас.


Сьогодні таких варіантів vimtexнемає, немає. Але, мабуть, є сенс ігнорувати правопис у карбованому середовищі, тому я можу відповідно оновити плагін. Дякую за приємне пояснення!
Карл Інгве Лервег

Я озирнувся в коді, і не знайшов існуючого регіону для карбування, тому спробував створити свій власний так: syn region mintedZone start="\\begin{minted}" end="\\end{minted}" contains=@NoSpellале це, здається, не допоможе. Будь-яка пропозиція?
Grégoire

@ Grégoire Будь ласка, давайте продовжимо це обговорення у проблемі vimtex .
Карл Інгве Лервег

5

Ви можете додати свої власні правила синтаксису до напр ~/.vim/after/syntax/tex.vim. Щоб уникнути перевірки орфографії в такій команді як \url, ви можете використовувати наступний код:

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

Ось texStatementі Delimiterє групи, що визначаються внутрішнім синтаксичним плагіном, див :e $VIMRUNTIME/syntax/tex.vim.

Якщо ви хочете зрозуміти наведені вище команди, я можу порекомендувати наступні розділи довідки:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.