一个shell脚本语法检查器是如何被调用的(通过syntastic和pathogen)?

3
当我在bash / sh脚本上工作时,pathogen会启动,并正确加载位于〜/ .vim / bundle / syntastic / syntax_checkers / sh / 中的所有内容。 我在命令行模式下使用:scriptnames 进行了检查。 其中包括 shellcheck.vim checkbashism.vim bashate.vim 等。

开始vim会话时,正确检测到 filetype 并加载相应的捆绑语法检查脚本。

但是syntastic如何调用 / usr / bin / shellcheck bashate checkbashism ? 在〜/ .vimrc 中没有明显的东西。

是否可以同时调用多个语法检查器? 例如, shellcheck bashate 可以一起使用吗? 谢谢。


2
感谢您解释了downvote的含义!如果我写错了什么或者用了错误的方式,我希望能知道。如果基于这个原因我的问题需要修改,那么可以进行修改。但是没有给出任何理由就downvote是毫无意义的。它并没有起到任何帮助作用。 - Cbhihe
2个回答

4
你的设置中,病原体的唯一作用就是在Vim启动时将每个插件的路径和子路径附加到'runtimepath'选项中。没有更多,也没有更少。
至于Syntastic,默认的检查器shshellcheck,用:help syntastic-checker-options来学习如何定义自己的检查器列表。

+1 我在 pathogen 的主页上明确了它的作用。通过 :scriptnames 得到的结果是显而易见的。我还从 Syntastic 的维基页面和 $ tree -L 4 ~/.vim 中看到了涵盖的大量语法检查器列表。但我没有看到你所包含的代码。这就是我的答案。谢谢。 - Cbhihe
1
@Cbhihe 你永远不应该依赖于默认的检查器列表。这些默认列表会带来更多麻烦,而且很可能在未来的版本中完全消失。你应该始终定义g:syntastic_*_checkers以适应你的需求。你不需要查看代码来完成这个任务。 - lcd047

1

根据romainl提供的链接(回答时应引用链接的相关部分),您可以通过设置变量'g:syntastic__checkers'为检查器列表来告诉syntastic针对给定的文件类型运行哪些检查器,例如:

let g:syntastic_php_checkers = ["php", "phpcs", "phpmd"]

至于您关于调用的问题:根据常见问题解答,"命令行是使用名为makeprgBuild()的内部函数构建的,该函数提供了许多选项,允许您自定义运行的每个命令的各个部分。 您可以使用全局变量设置这些选项"。(请参阅此答案。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接