对没有 shebang 行的 bash 脚本应用完整的 vim 着色

对没有 shebang 行的 bash 脚本应用完整的 vim 着色

因此,在我的项目中,有许多 bash 脚本文件是源代码,但从未直接运行过,因此它们没有 shebang 行,也没有设置执行位。Vim 会给它们添加一些颜色,但不会使用全彩色。我该如何调整 vim 来为这些文件提供所有正常的 bash 颜色?

编辑:

没有shebang:

没有shebang

使用shebang:

和 shebang 一起

编辑2:

下面有一个适用于逐个文件更改的答案,如果我能得到所有答案,我会选择它,但我真正想要的是修改 vim 安装中的配置文件或其他内容,以便即使没有 shebang,我也始终可以获得完整的“带 shebang”颜色。 某个地方必须有一个定义不完整着色的文件,我可以用定义完整着色的文件替换它。

编辑3:

vim 全局变量集并没有实质性的差异,如这些图所示(的输出:let g:):

环境

差异

我有点不知所措。

编辑4:

我从一个颜色正确的窗口(左)和一个颜色不正确的窗口(右)转储了整个环境,并对它们进行了差异化,发现了这一点:

60 b:current_syntax       bash   |   61 b:current_syntax       conf

因此,出于某种原因,它认为我的 shebangless 源文件是 conf 文件。所以我需要弄清楚如何将它们与 bash 匹配。

答案1

跑步:setf sh

您可能希望将其放在文件顶部(如果您不想要shebang):

# vim:ft=sh

答案2

let g:is_bash      = 1

在您的 中.vimrc。这会将未知 shell 脚本的默认文件类型设置为bash。请参阅完整解释:help ft-bash 语法

对于那些对内部结构感到好奇的人,至少在我的 Vim 7.4 安装中,g:is_bash在 中的自动命令中进行了测试$VIM/vim74/filetype.vim,并进行了相应设置。然后测试b:is_bash语法文件以决定如何突出显示文件。$VIM/vim74/syntax/sh.vimb:is_bash

相关内容