如何在Vim中突出显示Bash脚本?

92

我的 Vim 编辑器会自动高亮显示 PHP 文件 (vim file.php)、HTML 文件 (vim file.html) 等等。

但是当我输入命令 vim file 并在其中编写 Bash 脚本时,它不会对其进行高亮显示。

我该如何告诉 Vim 将其作为 Bash 脚本进行高亮显示?

我在文件顶部开始输入 #!/bin/bash,但这并不能使其正常工作。

13个回答

0

在新文件上获得语法高亮的最简单方法可能就是在编写shebang行后重新加载它。一个简单的:w :e将会写出文件,重新加载它,并解释你刚刚编写的shebang行以提供适当的语法高亮。


0

vim已经默认识别了许多文件类型。大多数情况下,它们是通过文件扩展名来工作的,但在某些情况下,vim也会分析文件内容来猜测正确的类型。

对于像.bashrc.tcshrc等特定文件名,vim会自动设置文件类型。但是,具有.sh扩展名的文件将被识别为csh、ksh或bash脚本。为了确定这是哪种类型的脚本,vim会读取文件的第一行以查看#!行。

如果第一行包含单词bash,则该文件将被标识为bash脚本。通常,如果脚本是要直接执行的,则会看到#!/bin/bash,但对于使用简单的# bash的shell配置文件也可以起作用。

如果您想查看详细信息,可以在$VIMRUNTIME/filetype.vim中实现。


嗯,实际上我想把这个发到别的地方。但我想这个答案也适用于这里 :-) - raimue

-1
当你创建一个新文件时,仅文件名检测生效;如果你在创建新缓冲区后输入代码#!/bin/bash,内容检测将不适用。
最明智的做法是第一次使用:set ft=bash,下一次编辑时,#!/bin/bash将自动设置正确的文件类型。

1
在我的电脑上,ft=bash 需要改为 ft=sh 才能正常运行。同时,我还需要在 ~/.vimrc 文件中添加 set modeline 才能使其工作,具体可参考此答案 - Tino

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