Vim, як перезавантажити підсвічування синтаксису


Відповіді:


95

Використовуйте :syntax sync fromstart

Я отримав цю підказку з http://vim.wikia.com/wiki/Fix_syntax_highlighting

Ця стаття також пропонує створити відображення для цієї команди, наприклад, для відображення F12:

noremap <F12> <Esc>:syntax sync fromstart<CR>
inoremap <F12> <C-o>:syntax sync fromstart<CR>

Це працює, але видаляє підкреслення для перевірки правопису. Будь-який спосіб запобігти цьому?
Алек Якобсон

1
Вибачте, я не знаю. У мене нічого не робиться перевірка правопису. Це може залежати від вашого конкретного аддону. Якщо ніхто інший не відповідає, можливо, варто скласти запитання з усією відповідною інформацією.
Mike Lippert

3
Я в кінцевому підсумку використовую autocmd BufEnter,InsertLeave * :syntax sync fromstartдля примусової синхронізації синтаксису після введення буфера. Синхронізація синтаксису також запускається, коли відбувається InsertLeaveподія.
Самуель Лі

Можливо, колись комусь це стане в нагоді. Використовуйте filetype=shабо syntax=shдля bash і тому подібне, ні bash. Взяв мене колись, щоб це зрозуміти.
quapka

Я використовую :do Syntaxеквівалент, :doautocmd Syntaxякий трохи коротший, тому вам не потрібно його прив'язувати (принаймні, мені не потрібно часто викликати цю команду, тому я просто вводжу її). Я здебільшого використовую його в деяких файлах, що містять регулярні вирази, що спричиняють порушення синтаксису, коли я відкриваю файл через netrw.
Rens Tillmann

53

Спробуйте:

:e

Якщо у вас немає незбережених змін у файлі.

Або:

:syn off | syn on

Створіть картографію, щоб полегшити біль, щось на зразокnmap <F6> :Rmodel|e<CR>
Holygeek

2
Здається, повинна бути якась вбудована команда для оновлення підсвічування синтаксису. Щось інше, що, здається, працює, це перейти до іншої частини файлу, наприклад, на початок чи кінець, і відскочити назад, наприклад:gg``
Кіт Пінсон,

2
": syntax sync fromstart" (без лапок) не перезавантажив підсвічування синтаксису файлів у файлах, які іноді не відображають забарвлення синтаксису - чомусь для мене та Vim. Однак ": syn off | syn on" відразу спрацювало. ": e!" також виконає це перезавантаження, але будьте обережні: незбережені зміни у вашому файлі будуть втрачені!
Вікторія Стюарт

:syn off | syn onзмінює кольорову схему для мене, що дратує
naught101

12

Спробував усе вищесказане - жоден не працював у мене.

Єдине, що працює: :filetype detect це те, що я переназначив швидкий ярлик :noremap <Leader>,ftd :filetype detect


9

Іноді синтаксис нормальний, але все, що руйнується, - це згини. У цьому випадку дуже zxдопомагає.

З документації VIM:

zx

Оновити згини: скасувати відкриті та закриті згини вручну: повторно застосувати 'рівень рівня', потім виконати "zv": переглянути рядок курсора. Також змушує перераховувати складки. Це корисно, коли використовується 'foldexpr', а буфер змінюється таким чином, що в результаті складки не оновлюються належним чином.



-1

Спробуйте:

:Rrefresh!

Ця команда оновлює певні кешовані налаштування, а також перезавантажує rails.vim .
Це допоможе мені оновити підсвічування синтаксису в Rails.


Це стосується лишеrails.vim загального рішення та не є ним. Без цього плагіна ця команда не існує.
wchargin

-1

Ви також можете спробувати:

CTRL-L

З документів VIM ( :h CTRL-L):

Очистіть і перемалюйте екран. Перемальовування може відбутися пізніше, після обробки typeahead.


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