为什么 vi 在创建脚本时不显示语法高亮

Why vi doesn't show syntax highlighting when create script

当我使用 vi 创建脚本时,它没有显示任何语法高亮显示。但是一旦我退出 vi 并再次使用 vi 打开脚本,它就会突出显示语法。 我想要的是在创建文件时第一次突出显示语法。请问是我配置有问题还是普遍情况?

vi 通常会根据文件扩展名猜测要使用的语法高亮类型。如果你正在编辑一个还没有名字的文件,你需要告诉它如何突出显示:

:set filetype=html

当vim 打开文件时,它会尝试猜测文件类型以启用语法高亮显示。当您打开一个名为 "myscript" 的新文件时,vim 无需继续猜测类型。

当您写入文件时,您写入的第一个文件是 #!/bin/sh(或类似文件),然后是脚本的其余部分。至此,vim已经判断这是一个纯文本文件,没有语法高亮。

当您重新打开文件时,vim 会看到文件的第一行,并了解到这是一个 shell 脚本。它适当地设置类型,并执行语法魔术。

为了解决问题,请使用表明其类型的扩展名命名文件(名为 "myscript.sh" 的空文件很可能是 shell 脚本),或者使用手动设置类型:set filetype=sh

我个人觉得第一种形式很难看(为什么要在文件名中包含文件类型?),第二种很难记住。我只是关闭并重新打开文件:-)