.Vim/syntax/sql.vim:处理“*.sql”的BufRead自动命令时检测到错误

t3irkdon  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(119)

我试着保存this Vim语法文件,但是当我在vim中打开一个sql文件时,我得到了很多很多这样的东西:

Error detected while processing BufRead Autocommands for "*.sql"..function dist#ft#SQL[4]..FileType
Autocommands for "*"..Syntax Autocommands for "*"..function <SNR>4_SynSet[25]..script /home/bernie/.
vim/syntax/sql.vim:
line   17:
E117: Unknown function: vim_highlight#core#options#getValue
line   18:
E117: Unknown function: vim_highlight#core#options#getValue
line   22:
E121: Undefined variable: s:case_sensitive
line   29:
E121: Undefined variable: g:vim_highlight#core#options#default#common
E116: Invalid arguments for function extend
line   30:
E121: Undefined variable: g:vim_highlight#core#options#default#region
E116: Invalid arguments for function extend
line   35:
E117: Unknown function: vim_highlight#core#syntax#match
Error detected while processing BufRead Autocommands for "*.sql"..function dist#ft#SQL[4]..FileType
Autocommands for "*"..Syntax Autocommands for "*"..function <SNR>4_SynSet[25]..script /home/bernie/.
vim/syntax/sql.vim[156]..function <SNR>29_SelectStmt:
line    1:
E117: Unknown function: vim_highlight#core#syntax#predicat
line    2:
E121: Undefined variable: l:predicat
line    5:

字符串
etc etc

Here's the first part of the linked syntax file

" Vim syntax file for SQL
" Language:     SQL standard / Support for drivers specifics
" Maintainer:   Julien Rosset <[email protected]>
"
" URL:          https://github.com/vim-highlight/sql/
" Version:      0.0.1

" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
  syntax clear
elseif exists("b:current_syntax")
  finish
endif

" Initialize options {{{
let s:driver         = vim_highlight#core#options#getValue('driver'        , '')
let s:case_sensitive = vim_highlight#core#options#getValue('case_sensitive',  0)
" }}}

" Case matching {{{
if s:case_sensitive
    syntax case match
else
    syntax case ignore
endif
" }}}

call extend(g:vim_highlight#core#options#default#common, { 'skipempty': 1, 'skipnl': 1, 'skipwhite': 1, 'contained': 1 })
call extend(g:vim_highlight#core#options#default#region, { 'keepend': 1 })

let s:predicats = { 'root': 'sql' }


由于这是某个人公开发布的语法文件,看到这么多错误让我觉得我的Vim设置一定有什么更广泛的问题。我使用的是8.2.1847版本。
我需要什么才能使附加的Vim语法文件工作?

pcww981p

pcww981p1#

--编辑--
首先,正如评论中提到的,您链接到的文件:

https://github.com/JessicaKMcIntosh/Vim/blob/master/syntax/sql.vim

字符串
不是问题正文中的问题。粘贴文件的头:

" Vim syntax file for SQL
" Language:     SQL standard / Support for drivers specifics
" Maintainer:   Julien Rosset <[email protected]>
"
" URL:          https://github.com/vim-highlight/sql/
" Version:      0.0.1


和链接文件的头:

" Vim syntax file
" Language:     SQL with SQLite and other additions.
" Maintainer:   Jessica K McIntosh AT gmail DOT com
" Last Changed: Thu Jan 23 06:00 PM 2014 EST


是完全不同的
第二,很容易看出你的问题中的错误来自你粘贴的文件,而不是来自链接的文件。我的意思是,下面的错误:

line   17:
E117: Unknown function: vim_highlight#core#options#getValue


明确指出:

" pasted file
let s:driver         = vim_highlight#core#options#getValue('driver'        , '')


而不是:

" linked file
endif


是吧?
因此,链接文件及其父存储库与当前的问题100%无关,即...

  • 结束编辑-
    该文件不是独立的。它不是从某人的配置中获取的随机文件。它属于一个完整的插件,并依赖于autoload/vim_highlight/core下的其他几个文件,因此您必须安装 * 整个东西 * 才能正常工作。
    使用您最喜欢的运行时路径/插件管理器,或者使用原生的:help packages功能:
~/.vim/pack/<name>/start/sql

相关问题