Vim bash 脚本中错误的语法突出显示
Vim wrong syntax highlighting in bash script
我是 vim 和 bash 的新手,我觉得有些奇怪。我有两个函数,它们有不同的突出显示,但我不明白为什么。我搜索了 google,但我还没有找到这个特定问题的答案。
下面是带有语法高亮显示的代码:
function unlock() {
rm -f ${LOCKFILE}
if [ -f ${LOCKFILE} ]; then
echo "ERROR: Unable to delete lockfile ${LOCKFILE}!"
exit 1
fi
echo_debug "lock file ${LOCKFILE} removed."
}
function copy_file() {
# scp -q -i "$RSA_FILE" -P "$NEXTCLOUD_SERVER_PORT" "" \
# "$NEXTCLOUD_SERVER_USER@$NEXTCLOUD_SERVER_HOST:$NEXTCLOUD_SERVER_DEST_DIR"
echo "copy_file()"
}
我注意到,如果我添加另一个名为 coFUNCTION()
的函数,突出显示会更改为 copy_file()
之类的函数。为什么会这样?
这是我的.vimrc
1 set number
2 syntax on
3 :color desert
sh
!= bash
,而 function
关键字是一个 bashism。所以语法突出显示完全有可能是正确的,除非它被应用到错误的语言。您可以简单地删除 function
关键字以更接近 POSIX 语法,这可能有助于突出显示代码。或者,根据突出显示代码的工作方式,您可能会更幸运地添加 shebang line 或将脚本扩展名从 "sh" 更改为 "bash".
我是 vim 和 bash 的新手,我觉得有些奇怪。我有两个函数,它们有不同的突出显示,但我不明白为什么。我搜索了 google,但我还没有找到这个特定问题的答案。
下面是带有语法高亮显示的代码:
function unlock() {
rm -f ${LOCKFILE}
if [ -f ${LOCKFILE} ]; then
echo "ERROR: Unable to delete lockfile ${LOCKFILE}!"
exit 1
fi
echo_debug "lock file ${LOCKFILE} removed."
}
function copy_file() {
# scp -q -i "$RSA_FILE" -P "$NEXTCLOUD_SERVER_PORT" "" \
# "$NEXTCLOUD_SERVER_USER@$NEXTCLOUD_SERVER_HOST:$NEXTCLOUD_SERVER_DEST_DIR"
echo "copy_file()"
}
我注意到,如果我添加另一个名为 coFUNCTION()
的函数,突出显示会更改为 copy_file()
之类的函数。为什么会这样?
这是我的.vimrc
1 set number
2 syntax on
3 :color desert
sh
!= bash
,而 function
关键字是一个 bashism。所以语法突出显示完全有可能是正确的,除非它被应用到错误的语言。您可以简单地删除 function
关键字以更接近 POSIX 语法,这可能有助于突出显示代码。或者,根据突出显示代码的工作方式,您可能会更幸运地添加 shebang line 或将脚本扩展名从 "sh" 更改为 "bash".