当我决定将函数移动到 lib 文件时,我正在编写脚本,但是当我打开 lib 文件时,所有的 $(
和连续的 )
都是红色突出显示,这里是一些脚本示例
TAB="$(printf '\t')"
percent=$(echo "scale=2; $number/$total*100" | bc | sed -e 's/\.[[:digit:]]*//g')
if [[ -z $(grep $site/post $max_lim) ]];then
文件类型是 conf 但我在 .vimrc 中将其设置为 sh 语法
知道发生了什么吗?
谢谢
编辑:感谢您的快速回答,我发现这一行使 vim 匹配具有 *
后面指定扩展名的文件,语法为 sh
au BufReadPost * set syntax=sh
我还认为在库中使用 shebang 是不允许的,但这是一个不错的解决方案
无论如何在 .vimrc 中使用 g:is_bash
都会返回找不到模式的错误
所以我想做的是因为我只用 bash 编写,让 vim 将任何没有扩展名的文件识别为 bash
最佳答案
sh
的语法文件实际上处理了几种不同类型的 shell 语法:bash
、ksh
和普通的 sh
。由于您的 conf 文件未被识别为 bash
或 ksh
,因此它会返回到 sh
。 $(...)
不是 sh
中的有效构造,因此它被突出显示为错误。
要解决这个问题,您可以确保为文件设置了“g:is_bash”,这样 sh
语法脚本就会知道您的文件应该突出显示为 bash
代码。请编辑您的问题以包含您添加到 .vimrc
中的内容,以使该文件使用 sh
语法突出显示。这将使建议设置“g:is_bash”的正确方法变得更容易。
更新:正如 Alok 评论的那样,您应该能够将以下内容添加到文件中
#!/bin/bash
让 vim
知道要使用的正确语法高亮。
关于bash - vim 红色高亮 $( ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14732651/