Vim,如何重新加载语法高亮

tom*_*nek 78 vim syntax-highlighting rails.vim

当我在Vim中执行Rmodel,Rcontroller和其他人时.我只看到白色文字.但是,当我去到下一个缓冲区,然后回去:bn:bl,颜色都在工作.

这是我的.vim文件夹 https://github.com/regedarek/dotvim

Mik*_*ert 86

使用 :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>
Run Code Online (Sandbox Code Playgroud)

  • 我最终使用``autocmd BufEnter,InsertLeave*:syntax sync fromstart``在我进入缓冲区后强制语法同步.当发生"InsertLeave`"事件时,也会触发语法同步. (2认同)

hol*_*eek 48

尝试:

:e
Run Code Online (Sandbox Code Playgroud)

如果您没有未保存的文件更改.

要么:

:syn off | syn on
Run Code Online (Sandbox Code Playgroud)

  • 似乎应该有一些内置命令来刷新语法高亮.其他似乎有用的东西是跳转到文件的另一部分,比如开头或结尾,然后跳回来,例如:`gg \`\`` (2认同)
  • ":syntax sync fromstart"(不带引号)没有重新加载文件类型语法高亮显示有时不显示语法颜色的文件——出于某种原因,这对我和 Vim 来说是一个持续存在的问题。然而,":syn off | syn on" 立即起作用了。“:e!” 也将完成重新加载,但要注意:对文件的未保存更改将丢失! (2认同)

JES*_*Sii 9

尝试了以上所有方法-没有一个对我有用。

唯一起作用的是: :filetype detect 所以我重新映射了一个快捷方式 :noremap <Leader> :filetype detect


Wor*_*mer 8

有时语法是可以的,但所有被破坏的都是折叠.在那种情况下有zx很多帮助.

来自VIM文档:

ZX

更新折叠:撤消手动打开和关闭折叠:重新应用'foldlevel',然后执行"zv":查看光标线.还强制重新计算折叠.这在使用'foldexpr'时非常有用,并且缓冲区的更改方式会导致折叠不能正确更新.


Cir*_*四事件 5

另一个选择是:

doautocmd Syntax
Run Code Online (Sandbox Code Playgroud)

  • 一个较短的版本是 `:do Syntax` (3认同)