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.