我想shellcheck
在使用包编写 LaTeX 文档时忽略minted
。我知道,使用时,shellcheck
我可以通过放置在文档开头的一行来轻松全局忽略警告或错误。例如,# shellcheck disable=SC2148
忽略未提供的错误shebang
。
注意,我在 Mac 上使用 sublime text。我还安装了和shellcheck
。(因为 sublime 状态栏中也写了 ,我不知道这是否也起作用)chktex
pygmentize
chktex
一个最小的工作示例
\documentclass[a4paper]{article}
\usepackage{minted}
\begin{document}
\begin{minted}{shell}
ls -al
\end{minted}
\end{document}
这抱怨没有提到shebang
。
如果我做
\documentclass[a4paper]{article}
\usepackage{minted}
\begin{document}
\begin{minted}{shell}
# shellcheck disable=SC2148
ls -al
\end{minted}
\end{document}
一切都运行正常。但由于我拥有众多minted
环境,因此我想全局禁用错误。
编辑
当然,我也可以禁用shellcheck
整个项目。这可以通过编辑相应的项目文件来完成
{
"folders":
[
...
],
"SublimeLinter":
{
"linters":
{
"shellcheck": {
"disable": true
}
}
}
}
不过,我正在寻找一种基于每个文件而不是基于项目来禁用它的方法。
答案1
这里看到的是两个善意功能之间的某种干扰。一方面,SublimeLinter-shellcheck
将针对 Sublime 范围为 shell 脚本的几乎所有代码运行shellcheck
。这允许 linter 支持非标准 shell 语法和嵌入在其他文件中的 shell 语法。另一方面,LaTeX 语法范围minted
阻止到适当的语法,因此您可以在编辑文件时获得语法突出显示。
正如您所发现的,您可以使用该"disable"
设置完全禁用更长的时间,但您还有其他几个选择。第一个是将设置"selector"
从默认的更改"source.shell - source.makefile - source.shell.fish"
为"source.shell - source.makefile - source.shell.fish - text.tex"
。这将停止shellcheck
在任何 TeX / LaTeX 文档上运行。另一个选项是将设置更改”excludes"
为类似的东西"*/*.tex"
,这应该会阻止它在任何扩展名为的文件上运行.tex
。这些设置中的任何一个都可以放在您放置设置的同一位置"disable"
或用户设置中,等等。