Vem spellcheck не всегда работает в .tex файле. Проверьте регион в Vim
Я использую Vim для записи своих файлов .tex
, но у меня возникают проблемы с проверкой орфографии в Vim. Иногда он не проверяет слова, и я думаю, что это может быть по следующей причине.
Так как Vim явно не должен проверять все слова в документе .tex
, например, а не на преамбуле, он проверяет правописание только в определенных регионах (в смысле синтаксиса). Как я понял из здесь, один из этих регионов texSectionZone
. Эти регионы могут стать довольно большими, на самом деле раздел часто бывает, поэтому у Vim возникают проблемы с пониманием того, что он фактически находится в области texSectionZone
(или в другом) и поэтому не проверяет орфографию. Это может произойти, если я сделаю поиск в документе или любой прыжок, который пропускает несколько строк (или, скорее, страниц).
То, как я заключил это, может быть причиной: следующее: я знаю, что команда
:echo synIDattr(synID(line("."),col("."),1),"name")
печатает название региона/регионов, в которых вы находитесь (я нашел его здесь), поэтому, когда проверка орфографии не работала, я попробовал это, и он сказал что это ни в каком регионе. Места, в которых он работал, я был в регионе, где он должен проверять правописание.
До сих пор мое единственное решение - найти ближайший раздел над точкой, которую я хочу проверить, и затем вручную переместить курсор вниз к данной точке.
В идеале мне бы очень понравилось решение, которое гарантирует, что этого не произойдет, но я бы также согласился на способ вручную сделать vim 'update', в каком регионе он находится, без меня нужно много перемещать курсор. В последнем случае я думаю о решении, которое можно было бы сделать с помощью ярлыка.
PS Я сомневался, что ответить на этот вопрос. Если вы придумаете заголовок, который лучше объяснит проблему, не стесняйтесь его менять.
Ответы
Ответ 1
syntax/tex.vim
уже использует довольно сложные шаблоны синхронизации, чтобы гарантировать, что подсветка синтаксиса точна, но для длинных и сложных документов это может все еще не работать.
Лучше всего вы можете увеличить оба значения
syn sync maxlines=200
syn sync minlines=50
(например, до 2000 и 500). Поместите это в ~/.vim/after/syntax/tex.vim
, чтобы переопределить значения по умолчанию.
syntax sync fromstart
может дать наилучшие результаты, но может быть слишком медленным. Вы найдете описание синтаксической синхронизации в :help :syn-sync
.
Ответ 2
Проверка орфографии не выполняется, если синтаксическая группа не определена (или не найдена vim). Я считаю полезным включить проверку орфографии даже для неопределенной группы (см. Toplevel в документации по синтаксису vim).
Для этого напишите команду:
syntax spell toplevel
в файле ~/.vim/after/syntax/tex.vim
. Сделайте файл, если он не существует.