Vim, как перезагрузить подсветку синтаксиса

Когда я выполняю Rmodel, Rcontroller и другие в Vim. Я вижу только белый текст. Но когда я иду к следующему буферу, а затем возвращаюсь :bn а также :bl, цвета работают.

Это моя папка.vim https://github.com/regedarek/dotvim

7 ответов

Решение

Использование :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>

Пытаться:

:e

Если у вас нет несохраненных изменений в файле.

Или же:

:syn off | syn on

Перепробовал все вышеперечисленное - у меня никто не работал.

Единственное, что работает, это: :filetype detectпоэтому я переназначил быстрый ярлык :noremap <Leader> :filetype detect

Иногда синтаксис в порядке, но нарушается только свертывание. В таком случае zx помогает много.

Из документации VIM:

гх

Обновить сгибы: отменить ручное открытие и закрытие сгибов: повторно применить 'foldlevel', затем выполнить "zv": просмотреть линию курсора. Также заставляет пересчитывать складки. Это полезно при использовании 'foldexpr', когда буфер изменяется таким образом, что сгибы не обновляются должным образом.

Другой вариант:

doautocmd Syntax

Вы также можете попробовать:

CTRL-L

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

Очистить и перерисовать экран. Перерисовка может произойти позже, после обработки typeahead.

Пытаться:

:Rrefresh!

Эта команда обновляет определенные кэшированные настройки, а также перезагружает rails.vim.
Это поможет мне обновить подсветку синтаксиса в Rails.

Другие вопросы по тегам