これは、Vimのシェル構文の動作と関係があります。 posixシェル、ksh、bashの3つのモードがあります。あなたはbash構文を使っていますが、Vimはそれをposixシェル(デフォルト)としてレンダリングしています。
Vim 8.0のこのコードの3つの異なるバージョンのスクリーンショットです。
トップバージョンでは、あなたのスクリーンショットの掲載コードだけです。デフォルトでは、posixシェルモードを使用しています。赤いハイライトが存在することがわかります。
中間バージョンでは、#!/bin/sh
をファイルの先頭に追加しました。これはまだposixモードであり、まだ赤いハイライトを持っています。
最後に、私は#!/bin/bash
に切り替えました。これによりbashの動作がトリガされ、bash固有の構文はもはやエラーとしてマークされなくなります。
#!
行は、ファイルの種類を自動検出するために使用されます。しかし、それが欠落していても、強制的にモードを強制することは可能です。
:let b:is_bash=1
:set ft=sh
このモードは、ファイルを開くときに設定されます。したがって、#!/bin/bash
を追加しても、すぐにモードが修正されるわけではありません。ファイルを保存/終了してから再度開いて、bashモードに切り替える必要があります。 (または、この段落のすぐ上のトリックを使用してください)
申し訳ありませんが、なぜ正確には動作していないと言いますか? – sidyll
こんにちは@sidyllだから私は自分のコードに文法エラーがないと思っているが、vimは私のコードの一部を赤で強調表示している(画像にあるように)。私は構文エラーがあることを意味しましたか?私のスクリプトはラップトップでうまく動作します。 –
私はあなたのcolorschemeがそれを行う方法です:)あなたは別のものを試してみましたか? – sidyll