gpt4 book ai didi

Vim 不一致地语法高亮 bash 文件

转载 作者:行者123 更新时间:2023-12-02 05:54:12 25 4
gpt4 key购买 nike

当我用 vim 打开一些 bash 脚本文件时,有时会将它们识别为 conf文件,没关系,我可以通过将文件类型设置为 sh 来纠正它。与 :setf sh .

那太好了,但我注意到这并不能完全解决问题:

Two files side-by-side with different highlighting

请注意shopt左侧正确突出显示,但右侧未突出显示,我手动将文件类型设置为 sh .

这意味着当文件被识别为bash时或sh通过 vim,它将文件类型设置为 sh但随后执行了一些我在手动设置文件类型时没有执行的额外步骤。

有人知道这可能是什么,以及我该如何解决它吗?

最佳答案

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

vim 自动设置特定文件名的文件类型,例如 .bashrc.tcshrc 等。但扩展名为 .sh 的文件将被识别为 csh、ksh 或 bash 脚本。为了确定这到底是什么类型的脚本,vim 读取文件的第一行来查看 #!线。

如果第一行包含单词 bash,则该文件被识别为 bash 脚本。如果脚本要直接执行,通常您会看到 #!/bin/bash,对于其他一些 shell 配置文件,您应该使用文件扩展名 .bash

vim 中的帮助在 :help ft-bash-syntax 中也解释了这一点。您还可以在 .vimrc 中使用 let g:is_bash=1 使 bash 语法默认突出显示所有带有 filetype=sh 的文件。如果你想看细节,这是在 $VIMRUNTIME/filetype.vim 中实现的。

关于Vim 不一致地语法高亮 bash 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7450395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com