来自 vim 维基:
自定义 filetype.vim 文件应始终具有以下结构:
if exists("did_load_filetypes")
finish
endif
augroup filetypedetect
" au! commands to set the filetype go here
augroup END
Run Code Online (Sandbox Code Playgroud)
我想知道为什么 if...endif 部分是必要的?
我认为这基本上意味着如果文件类型已加载,则跳过加载此脚本。但在这种情况下,创建自定义文件类型文件有什么意义呢?
这只是一个包含保护,以避免您的自定义文件类型被意外多次获取。
如果一切顺利,这确实看起来多余,但由于用户配置、插件管理器等存在各种变化,最好是安全的。而且它使 Vim 免于重新处理可能很大的定义列表,从而加快启动速度。
当它实际上来源两次时会发生什么?
如果您使用:autocmd而不是:autocmd!,则所有检测都将被定义两次。:autocmd!(请注意,此处不能使用首字母来清除所有先前的定义,因为filetype.vim涉及多个文件,并且每个文件仅添加到现有文件中。)
| 归档时间: |
|
| 查看次数: |
409 次 |
| 最近记录: |