Bash var赋值中的子shell阻止正确的文档突出显示

Bash var赋值中的子shell阻止正确的文档突出显示,bash,vim,zenity,Bash,Vim,Zenity,我每天多次使用终端上的警报脚本来快速提醒。无论如何,此var分配: killOrSnz=$((sleep .1 ; wmctrl -r yadAC -e 0,6,30,0,0) | yad --title yadAC --image="$imgClk" --text "Alarm:\n${am}" --form --field="Hit Enter key to stop the alarm\nor enter a number of minutes\nthe alarm should snoo

我每天多次使用终端上的警报脚本来快速提醒。无论如何,此var分配:

killOrSnz=$((sleep .1 ; wmctrl -r yadAC -e 0,6,30,0,0) | yad --title yadAC --image="$imgClk" --text "Alarm:\n${am}" --form --field="Hit Enter key to stop the alarm\nor enter a number of minutes\nthe alarm should snooze." --button="gtk-cancel:1" --button="gtk-ok:0"|sed -r 's/^([0-9]{1,})\|[ ]*$/\1/')
这让我很伤心。var工作正常,正如预期的那样,除了它下面的所有代码在我的vim会话中不再突出显示,这使得我的眼睛在看它的时候很痛,更不用说扫描问题或进行更改了

我借用了管道
yad
命令通过
wmctrl
来更好地控制窗口几何体的想法,这在这里的另一篇文章中非常好,但当然没有提到潜在的副作用。我想对应用程序的窗口位置保持良好的控制,但在保持文档突出显示的同时这样做会更好


我确实试着重新安排管道和子shell,看看是否可以让它以另一种不干扰我的vim高亮显示的方式工作,但除了这种方式,我不喜欢任何其他方式。

似乎vim的解析器被
愚弄了$((
,将其误认为是算术表达式的开头,而不是第一个字符为括号的命令替换。因为没有匹配的
,着色程序会混淆什么是什么。请尝试在两个打开的参数之间添加显式空格:

killOrSnz=$( (sleep .1; ... )

似乎VIM的解析器被
$愚弄了(
,误认为它是算术表达式的开头,而不是第一个字符是括号的命令替换。因为没有匹配的
,着色程序对什么是什么感到困惑。请尝试在两个打开的参数之间添加显式空格:

killOrSnz=$( (sleep .1; ... )

似乎VIM的解析器被
$愚弄了(
,误认为它是算术表达式的开头,而不是第一个字符是括号的命令替换。因为没有匹配的
,着色程序对什么是什么感到困惑。请尝试在两个打开的参数之间添加显式空格:

killOrSnz=$( (sleep .1; ... )

似乎VIM的解析器被
$愚弄了(
,误认为它是算术表达式的开头,而不是第一个字符是括号的命令替换。因为没有匹配的
,着色程序对什么是什么感到困惑。请尝试在两个打开的参数之间添加显式空格:

killOrSnz=$( (sleep .1; ... )