Est-ce que la définition de la variable d’environnement EDITOR
la suivante :
pour signifier un comportement non pris en charge sous Unix? Ou est-ce spécial pour Git?
Je suis tombé sur cet exemple de passage EDITOR=:
à Git pour court-circuiter toute tentative de lancement d’un éditeur:
# Amend the commit, reusing the commit message EDITOR=: git commit --amend
Mais attendez une seconde. Pourquoi ça marche? La variable d’environnement EDITOR
doit être définie pour pointer vers un éditeur exécutable dans votre PATH
, comme EDITOR=vim
et autres. Après quelques recherches, j’ai trouvé que Git vérifie explicitement la valeur de l’éditeur par rapport à :
et ne lance pas d’éditeur dans ce cas. (Voir commit.c pour les détails gory.)
Donc, pour revenir à la question, il semble que Git prenne en charge :
tant qu’éditeur No-Op, et ce, en utilisant des boîtiers spéciaux. Est-ce que :
même une valeur légale pour EDITOR
, ou quelque chose d’une convention soutenue par certains programmes? (Une alternative serait de définir EDITOR=echo
ou EDITOR=touch
pour que l’éditeur soit appelé en tant que touch FILE
, laissant le FILE
non modifié.)
Utiliser :
pour signifier no-op pour EDITOR
semble étrangement similaire à la façon dont :
intégrée Bash est la commande no-op équivalente à true
. Coïncidence?
Quel est le cas d’utilisation de noop [:] dans bash?
L’utilisation de :
est probablement un signe de tête pour les shells Bourne ( plus de lecture à ce sujet ), mais comme vous le constatez, il est explicitement traité dans Git. Je ne connais nulle part la documentation EDITOR=:
quelque chose qui devrait fonctionner au niveau mondial.
Prise en charge de Git pour EDITOR=:
date de 2007: https://github.com/git/git/commit/943316e96ca2dad67086af2f945e42467a27ddd6 !