兼容 Vim 的 JS 检查器(Syntastic | YouCompleteMe)?
Posted
技术标签:
【中文标题】兼容 Vim 的 JS 检查器(Syntastic | YouCompleteMe)?【英文标题】:Compatible JS checker for Vim (Syntastic | YouCompleteMe)? 【发布时间】:2016-02-16 10:32:16 【问题描述】:在终端 vim 中安装 YouCompleteMe 之前,我一直在使用 Syntastic。所以,问题是 YouCompleteMe 不允许 Syntastic 检查错误,但我需要两个插件。
YouCompleteMe 有一些错误检查器,但我没有找到一种方法来检查 javascript 错误。
我该如何解决?
.vimrc for Syntastic
let g:syntastic_always_populate_loc_list = 0
let g:syntastic_auto_loc_list = 2
let g:syntastic_loc_list_height = 8
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 1
let g:syntastic_aggregate_errors = 1
let g:syntastic_id_checkers = 1
let g:syntastic_error_symbol = "✗"
let g:syntastic_warning_symbol = "⚠"
set statusline+=%#warningmsg#
set statusline+=%SyntasticStatuslineFlag()
set statusline+=%*
let g:syntastic_javascript_checkers = ['jslint', 'jsonlint', 'gjslint']
let g:syntastic_html_tidy_exec = 'tidy5'
.vimrc 用于 YCM:
" YouCompleteMe and UltiSnips compatibility, with the helper of supertab
let g:ycm_key_list_select_completion = ['<A-¶>', '<A-Space>', '<Down>']
let g:ycm_key_list_previous_completion = ['<A-§>', '<A-π>', '<Up>']
" You Complete Me Options
let g:ycm_show_diagnostics_ui = 0
let g:ycm_enable_diagnostic_highlighting = 0
let g:ycm_enable_diagnostic_signs = 0
let g:ycm_show_diagnostics_ui = 0
let g:ycm_open_loclist_on_ycm_diags = 0
let g:ycm_complete_in_comments = 0
let g:ycm_complete_in_strings = 0
let g:ycm_collect_identifiers_from_comments_and_strings = 0
let g:ycm_collect_identifiers_from_tags_files = 1
:SyntasticInfo
输出
> Syntastic version: 3.7.0-31 (Vim 704, Darwin)
> Info for filetype: javascript
> Global mode: active
> Filetype javascript is active
> The current file will be checked automatically
> Available checkers: -
> Currently enabled checkers: -
我不知道为什么可用和启用检查器不见了?他们在 YCM 安装之前就在那里工作!
【问题讨论】:
YCM 禁用 syntastic 对 C、C++、Objective-C 和 Objective-C++ 文件的检查器(并且有一个选项可以关闭该行为)。对于其他一切,YCM 只做代码完成,不检查,并且可以与 syntastic 和平共处。至于在语法中启用 JavaScript linter,您是否考虑过阅读手册?可怕的观点,我知道。 @lcd047 我阅读了文档,但实际上没有找到“关闭”选项。我添加了一些 let 变量来禁用 YCM 选项,无论显示错误,但 Syntastic 仍然无法正常工作。我还阅读了 Syntastic 文档,但一切正常。我注意到使用:SyntasticInfo
it 无法识别跳棋。看上面的输出,我要更新问题了。
这不是调试语法的好地方。问题跟踪器是this way。
【参考方案1】:
您可以做的是使用 Neovim 代替 Vim 以及 ALE 插件和可选的 LanguageClient-neovim 插件。
要使后者工作,您还需要运行 npm install -g javascript-typescript-langserver
。
这让您通过 JavaScript 语言服务器获得异步 linting (ALE) 和异步完成/linting 功能。
【讨论】:
以上是关于兼容 Vim 的 JS 检查器(Syntastic | YouCompleteMe)?的主要内容,如果未能解决你的问题,请参考以下文章