0

迅速なリマインダーのために、端末から 1 日に複数回使用するアラーム スクリプトを作成しています。とにかく、この 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。これは、ここの別の投稿から素晴らしいものですが、もちろん、潜在的な副作用については言及されていません。アプリのウィンドウの配置を細かく制御したいのですが、ドキュメントの強調表示を維持しながらそれを行うとよいでしょう。

パイプとサブシェルを再配置して、vim の強調表示を妨げない別の方法で動作させることができるかどうかを確認しようとしましたが、この方法以外に愛はありませんでした。

4

1 に答える 1

3

VIM のパーサーは にだまされて$((、最初の文字が括弧であるコマンド置換ではなく、算術式の開始と間違えているようです。一致する がないため))、カラライザーは何が何であるかについて混乱します。2 つの開き括弧の間に明示的なスペースを追加してみてください。

killOrSnz=$( (sleep .1; ... )
于 2014-07-11T19:59:49.037 に答える