vim red mettre en évidence $ ()

J’écrivais un script quand j’ai décidé de déplacer les fonctions dans un fichier lib, mais quand j’ouvre le fichier lib, tous les $( et les consécutifs ) sont en rouge, voici quelques exemples du script

 TAB="$(printf '\t')" percent=$(echo "scale=2; $number/$total*100" | bc | sed -e 's/\.[[:digit:]]*//g') if [[ -z $(grep $site/post $max_lim) ]];then 

Le type de fichier est conf mais je l’ai défini comme syntaxe sh dans .vimrc

Une idée de ce qui se passe?

Je vous remercie


Edit: Merci pour les réponses rapides, j’ai trouvé que cette ligne fait correspondre vim les fichiers avec l’extension spécifiée derrière le * avec la syntaxe sh

 au BufReadPost * set syntax=sh 

J’ai aussi pensé que l’utilisation de shebang dans les bibliothèques n’était pas autorisée, mais c’est une bonne solution

En tout cas, l’utilisation de g:is_bash dans .vimrc renvoie une erreur de modèle introuvable.

Donc, ce que je voudrais faire, c’est que je n’écris que dans bash, que vim reconnaisse tout fichier sans extension comme bash

Le fichier de syntaxe de sh gère en fait plusieurs types de syntaxe de shell: bash , ksh et plain vieux sh . Comme votre fichier conf n’est pas reconnu comme bash ou ksh , il revient à sh . $(...) n’est pas une construction valide dans sh , il est donc mis en évidence comme une erreur.

Pour résoudre ce problème, vous pouvez vous assurer que “g: is_bash” est défini pour le fichier, afin que le script de syntaxe sh sache que votre fichier doit être mis en évidence en tant que code bash . Veuillez modifier votre question pour inclure ce que vous avez ajouté à votre .vimrc pour que le fichier utilise la mise en évidence de la syntaxe. Cela facilitera la suggestion de la manière correcte de définir “g: is_bash”.

MISE À JOUR: Comme Alok l’a commenté, vous devriez pouvoir append les éléments suivants au fichier

 #!/bin/bash 

pour que vim connaisse également la coloration correcte à utiliser.