Когда я выполняю Rmodel, Rcontroller и другие в Vim. Я вижу только белый текст. Но когда я иду в следующий буфер , а затем вернуться назад :bn
и :bl
, цвета работают.
Это моя папка .vim https://github.com/regedarek/dotvim
Когда я выполняю Rmodel, Rcontroller и другие в Vim. Я вижу только белый текст. Но когда я иду в следующий буфер , а затем вернуться назад :bn
и :bl
, цвета работают.
Это моя папка .vim https://github.com/regedarek/dotvim
Ответы:
Использовать :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>
autocmd BufEnter,InsertLeave * :syntax sync fromstart
для принудительной синхронизации синтаксиса после того, как вхожу в буфер. Синтаксическая синхронизация также запускается, когда происходит InsertLeave
событие.
filetype=sh
или syntax=sh
для bash и подобные, нет bash
. Мне потребовалось время, чтобы понять это.
:do Syntax
эквивалент, :doautocmd Syntax
который немного короче, поэтому вам не нужно его связывать (по крайней мере, мне не нужно вызывать эту команду так часто, поэтому я просто набираю ее). Я в основном использую его в некоторых файлах, содержащих регулярные выражения, из-за которых подсветка синтаксиса прерывается, когда я открываю файл через netrw.
Пытаться:
:e
Если у вас нет несохраненных изменений в файле.
Или:
:syn off | syn on
nmap <F6> :Rmodel|e<CR>
gg``
:syn off | syn on
меняет
Иногда с синтаксисом все в порядке, но все, что ломается, - это складки. В этом случае очень zx
помогает.
Из документации VIM:
zx
Обновить складки: отменить открытые и закрытые вручную складки: повторно применить «foldlevel», затем выполнить «zv»: просмотреть строку курсора. Также заставляет пересчитывать складки. Это полезно при использовании Foldexpr и изменении буфера таким образом, что свертки не обновляются должным образом.
Вы также можете попробовать:
CTRL-L
Из документации VIM ( :h CTRL-L
):
Очистите и перерисуйте экран. Перерисовка может произойти позже, после предварительной обработки.