2011-12-29 94 views

回答

64

使用: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> 
+0

这有效,但删除了拼写检查的下划线。任何方式来防止呢? – 2014-06-30 19:52:55

+1

对不起,我不知道。我没有任何事情正在拼写检查。它可能取决于你的特定插件。如果没有人回答,可能值得提出一个有所有相关信息的问题。 – 2014-07-01 00:34:50

+0

我最终使用'autocmd BufEnter,InsertLeave *:语法同步fromstart'来强制语法同步后,我进入一个缓冲区。语法同步也会在发生InsertLeave事件时触发。 – 2016-02-17 19:27:16

30

尝试:

:e 

如果你有文件未保存的更改。

或者:

:syn off | syn on 
+0

:E使用,但这是不方便 – tomekfranek 2012-01-04 17:07:19

+0

创建一个映射,以缓解疼痛,像''NMAP :Rmodel |电子'' – holygeek 2012-01-04 17:29:27

+2

这似乎应该有一些内建命令刷新语法高亮显示。别的东西,似乎工作是跳转到该文件的另一部分,如开始或结束,跳回,例如:'GG \'\'' – 2012-11-02 22:43:22

-1

尝试:

:Rrefresh! 

此命令刷新缓存的某些设置也重装rails.vim
它帮助我在Rails中刷新语法高亮。

+0

这个_only_适用于'rails.vim',不是一个通用的解决方案。没有这个插件,这个命令不存在。 – wchargin 2016-12-29 07:17:03

3

另一种选择是:

doautocmd Syntax 
8

有时语法是OK的,但所有这一切都得到坏的弯折。在这种情况下,zx帮助很大。

从VIM文档:

ZX

更新折叠:撤消被手工打开和关闭的折叠:再次申请 '折叠级别',然后使用 “zv”:查看光标所在行。 也强制重新计算褶皱。使用 “foldexpr”里时,这是有用的,该缓冲区导致 褶皱不正确更新的方式改变。

3

尝试了上述所有 - 没有为我工作。

,做工作的唯一事情是: :filetype detect 所以我重新映射了快捷方式 :noremap <Leader> :filetype detect