Vim, jak przeładować podświetlanie składni

Odpowiedzi:

95

Posługiwać się :syntax sync fromstart

Mam tę wskazówkę z http://vim.wikia.com/wiki/Fix_syntax_highlighting

Ten artykuł sugeruje również utworzenie mapowania dla tego polecenia, np. Do mapowania F12:

noremap <F12> <Esc>:syntax sync fromstart<CR>
inoremap <F12> <C-o>:syntax sync fromstart<CR>
Mike Lippert
źródło
To działa, ale usuwa podkreślenie do sprawdzania pisowni. Jakiś sposób, aby temu zapobiec?
Alec Jacobson
1
Przepraszam, nie wiem. Nie mam nic do sprawdzania pisowni. Może to zależeć od konkretnego dodatku. Jeśli nikt inny nie odpowie, warto ułożyć pytanie z wszystkimi istotnymi informacjami.
Mike Lippert
3
W końcu używam autocmd BufEnter,InsertLeave * :syntax sync fromstartdo wymuszenia synchronizacji składni po wejściu do bufora. Synchronizacja składni jest również wyzwalana, gdy zachodzi jakieś InsertLeavezdarzenie.
Samuel Li
Może kiedyś komuś się to przyda. Użyj filetype=shlub syntax=shdo basha i tak dalej, nie bash. Zajęło mi trochę czasu, żeby to rozgryźć.
quapka
Używam :do Syntaxodpowiednika, :doautocmd Syntaxktóry jest tylko trochę krótszy, więc nie musisz go wiązać (przynajmniej nie muszę często wywoływać tego polecenia, więc po prostu go wpisuję). Przeważnie używam go w niektórych plikach, które zawierają wyrażenia regularne, które powodują zerwanie podświetlenia składni, gdy otwieram plik przez netrw.
Rens Tillmann
53

Próbować:

:e

Jeśli nie masz niezapisanych zmian w pliku.

Lub:

:syn off | syn on
Holygeek
źródło
Utwórz mapowanie, aby złagodzić ból, coś w stylunmap <F6> :Rmodel|e<CR>
holygeek
2
Wygląda na to, że powinno być jakieś wbudowane polecenie do odświeżania podświetlania składni. Coś innego, co wydaje się działać, to przeskoczenie do innej części pliku, na przykład początku lub końca, i cofnięcie się, np .:gg``
Keith Pinson
2
": syntax sync fromstart" (bez cudzysłowów) nie ładowało ponownie podświetlania składni typu pliku w plikach, które czasami nie pokazują kolorowania składni - z jakiegoś powodu jest to ciągły problem dla mnie i Vima. Jednak ": syn off | syn on" natychmiast zadziałało. ":mi!" spowoduje również ponowne załadowanie, ale uwaga: niezapisane zmiany w pliku zostaną utracone!
Victoria Stuart
:syn off | syn onzmienia dla mnie schemat kolorów, co jest denerwujące
nic101
12

Wypróbowałem wszystkie powyższe - żaden nie działał dla mnie.

Jedyne, co działa, to: :filetype detect więc ponownie przypisałem szybki skrót :noremap <Leader>,ftd :filetype detect

JESii
źródło
9

Czasami składnia jest w porządku, ale wszystko, co się psuje, to fałdy. W takim przypadku zxpomaga dużo.

Z dokumentacji VIM:

zx

Aktualizuj fałdy: Cofnij ręcznie otwarte i zamknięte fałdy: ponownie zastosuj „poziom zawinięcia”, a następnie wykonaj „zv”: Wyświetl linię kursora. Wymusza również ponowne obliczenie fałd. Jest to przydatne, gdy używasz 'foldexpr', a bufor jest zmieniany w sposób, który powoduje, że fałdy nie są poprawnie aktualizowane.

Wormer
źródło
5

Inną opcją jest:

doautocmd Syntax
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
źródło
1
fwiw, to jedyna odpowiedź, która naprawiła podświetlanie składni, gdy miałem ten problem ( syntax sync fromstartnic nie zrobiłem ani nic innego!)
TJ Ellis
1
Krótsza wersja tego byłaby:do Syntax
Rens Tillmann
-1

Próbować:

:Rrefresh!

To polecenie odświeża niektóre ustawienia z pamięci podręcznej, a także przeładowuje rails.vim .
Pomaga mi to odświeżyć podświetlanie składni w Railsach.

zenbro
źródło
To tylko dotyczy rails.vimi nie jest ogólnym rozwiązaniem. Bez tej wtyczki to polecenie nie istnieje.
wchargin
-1

Możesz też spróbować:

CTRL-L

Z dokumentacji VIM ( :h CTRL-L):

Wyczyść i odśwież ekran. Przerysowanie może nastąpić później, po przetworzeniu tekstu z wyprzedzeniem.

Jordania
źródło
Ctrl-L odświeża ekran. Nie ma znaczenia, czy dokonałeś zmian w odpowiednim pliku składni.
Alexis Wilke