gpt4 book ai didi

shell - vim 中 shell 脚本的错误语法高亮显示

转载 作者:行者123 更新时间:2023-12-04 16:16:48 26 4
gpt4 key购买 nike

我是 vim 和 shell 脚本的新手。我不确定是否存在真正的问题,或者只是我不了解 vim 或 shell 脚本,但我确实通过谷歌搜索但没有得到任何答案。无论如何,这就是我在 vim 中执行 shell 脚本时得到的结果。而且我认为语法突出显示无法正常工作。

See image click here

filename=$(basename $file)

Vim 以红色突出显示 $()

顺便说一句:我在 Mac 上使用 gvim 8.0 并安装了 YCM,如果它是相关的话。

最佳答案

这与 Vim 的 shell 语法的行为有关。它具有三种模式:posix shell、ksh 和 bash。您正在使用 bash 语法,但 Vim 将其呈现为 posix shell(默认)。

这是 Vim 8.0 中此代码的 3 个不同版本的屏幕截图。

enter image description here

顶级版本只是您在屏幕截图中发布的代码。默认情况下,它使用的是 posix shell 模式,您可以看到红色突出显示。

在中间版本中,我在文件的开头添加了#!/bin/sh。这仍然是 posix 模式,并且仍然有红色高亮。

在底部,您可以看到我切换到了 #!/bin/bash。这会触发 bash 行为,现在您可以看到特定于 bash 的语法不再标记为错误。

#! 行用于自动检测文件类型。但是,如果它丢失了,如果您愿意,仍然可以强制模式。

:let b:is_bash=1
:set ft=sh

请注意,模式是在打开文件时设置的。所以添加 #!/bin/bash 不会立即修复模式。您需要保存/退出文件,然后再次打开它,以切换到 bash 模式。 (或者使用本段上方的技巧。)

关于shell - vim 中 shell 脚本的错误语法高亮显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43293657/

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