シェル スクリプトに .sh
を正しく指定していますか 拡大? Vim の自動構文選択は、ほぼ完全にファイル名 (拡張子) の検出に基づいています。ファイルに構文が設定されていない (または構文が間違っている) 場合、特定の言語でスクリプトを入力し始めたからといって、Vim は自動的に正しい構文に変更されません。
一時的な回避策として、コマンド :set syn=sh
シェル スクリプトの構文強調表示をオンにします。
これまでの答えは正しいので、拡張機能を使用できます ( .sh
など) ) またはシバン行 (#!/bin/bash
など) ) ファイルの種類を識別します。これらのいずれも持っていない場合でも、ファイルの上部または下部にあるモードライン コメントを使用して、ファイルの種類を手動で指定できます。
たとえば、拡張子のないスクリプトをシェル スクリプトとして識別したい場合は、ファイルの先頭に次のコメントを追加できます。
# vim: set filetype=sh :
または
# vim: filetype=sh
これにより、ファイルをシェルスクリプトとして扱うようにvimに指示されます。 (モードラインで他の設定もできます。vim で :help modeline
と入力します。 詳細については。)