web-dev-qa-db-fra.com

Comment faire en sorte que Git utilise l'éditeur de mon choix pour les commits?

Je préférerais écrire mes messages de commit dans Vim, mais cela les ouvre dans Emacs.

Comment configurer Git pour qu'il utilise toujours Vim? Notez que je veux le faire globalement, pas seulement pour un seul projet.

2272
brasskazoo

Si vous souhaitez définir l'éditeur uniquement pour Git, effectuez l'une ou l'autre (vous n'avez pas besoin des deux):

  • Définissez core.editor dans votre configuration Git: _git config --global core.editor "vim"_
  • Définissez la variable d'environnement GIT_EDITOR : _export GIT_EDITOR=vim_

Si vous souhaitez définir l'éditeur pour Git ainsi que pour d'autres programmes , définissez les variables d'environnement standardisées VISUAL et EDITOR *:

_export VISUAL=vim
export EDITOR="$VISUAL"
_

* Le réglage des deux n'est pas nécessairement nécessaire, mais certains programmes peuvent ne pas utiliser le VISUAL plus correct. Voir VISUAL VS. EDITOR .


Pour le texte sublime : Ajoutez ceci au _.gitconfig_. Le _--wait_ est important. (cela permet de taper du texte en sublime et d'attendre l'événement de sauvegarde/fermeture.

_[core]
    editor = 'subl' --wait
_

'subl' peut être remplacé par le chemin complet de l'exécutable mais est généralement disponible lorsqu'il est correctement installé.

3151
digitaldreamer

Copier coller ceci:

git config --global core.editor "vim"

Au cas où vous voudriez savoir ce que vous faites. De man git-commit:

VARIABLES ENVIRONNEMENT ET CONFIGURATION

L’éditeur utilisé pour éditer le message du journal de validation sera choisi parmi la variable d’environnement GIT_EDITOR, la variable de configuration core.editor, la variable d’environnement VISUAL ou la variable d’environnement EDITOR ( dans cet ordre).

545
Mark Rushakoff

Sur Ubuntu et aussi Debian (merci @MichielB), il est également possible de modifier l'éditeur par défaut en exécutant:

Sudo update-alternatives --config editor

Ce qui incitera ce qui suit:

There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
* 3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number: 
174
Koen.

Dans Windows 7, lors de l'ajout de l'éditeur "Sublime", cela me donnait toujours une erreur:

Abandon de la validation en raison d'un message de validation vide.

Sublime n'a pas réussi à rester concentré.

Pour résoudre ce problème, j'ai ouvert le fichier .gitconfig dans c:/users/nom_utilisateur/dossier et ajouté la ligne suivante avec l'option --wait en dehors des guillemets.

[core]
      editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait

J'espère que c'est utile pour quelqu'un confronté au même problème avec Sublime.

59
Anmol Saraf

Sous Windows 7, paramétrage de l'éditeur sur Notepad ++

  • Ouvrez n'importe quel éditeur de texte.
  • Ouvrir ce fichier: C:\Users\YOUR_USERNAME\.gitconfig
  • Ajouter cette section au bas:

[core]
    editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' 
  • Enregistrez et fermez le fichier.
  • Lorsque vous vous engagez avec git, écrivez simplement git commit et appuyez sur Enter. Cela ouvrira Notepad ++.
  • Ecrivez votre message de validation en haut du fichier, puis enregistrez et fermez le fichier. Terminé!
53
Ryan

Pour faire de Visual Studio Code (vscode) votre éditeur git par défaut

git config --global core.editor "code --wait"
26
Marcelo Mason

Et si vous travaillez avec des concepteurs utilisant la ligne de commande, alors Pico, et ne savez pas les raccourcis;)

git config --global core.editor "pico"

Ou

export VISUAL=pico
export EDITOR=pico
23
tristanbailey

Définition de Sublime Text 2 comme éditeur Git commit sous Mac OSX 10

Exécutez cette commande:

$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"

Ou juste:

$ git config --global core.editor "subl -w"
17
Mohsen

Atom en tant qu'éditeur Git

git config --global core.editor "atom --wait"

Atom doit être configuré pour être exécuté à partir de la ligne de commande afin que ce qui précède fonctionne:

OS X: installer les commandes Shell à partir d'Atom: barre de menus> Atom>> Installer les commandes Shell

Windows: aucune action requise - atom est configuré pour être exécuté à partir de la ligne de commande par défaut

16
2Toad

Windows: définition du bloc-notes en tant qu'éditeur de message de validation par défaut

git config --global core.editor notepad.exe

Frappé Ctrl+S pour enregistrer votre message de validation. Pour le supprimer, fermez simplement la fenêtre du bloc-notes sans enregistrer.

Si vous cliquez sur le raccourci pour enregistrer, puis décidez d’abandonner, sélectionnez Fichier-> Enregistrer sous et, dans la boîte de dialogue qui s’ouvre, remplacez "Type de fichier" par "Tous les fichiers (*. *)". Vous verrez un fichier nommé "COMMIT_EDITMSG". Supprimez-le et fermez la fenêtre du bloc-notes.

Edit: Vous pouvez également, plus facilement, supprimer tout le contenu de la fenêtre du bloc-notes ouverte et cliquer sur Enregistrer. (merci mwfearnley pour le commentaire!)

Je pense que pour les petites critiques telles que les messages de commit, le bloc-notes sert le mieux, parce que c'est simple, existe-t-il avec Windows, s'ouvre-t-il en un rien de temps. Même votre sublime peut prendre une seconde ou deux à se déclencher lorsque vous avez une charge de plugins et autres choses.

11
Sнаđошƒаӽ

Ceci fournit une réponse aux personnes qui arrivent à cette question et qui souhaitent peut-être lier un éditeur autre que vim.

La ressource liée, par Github , sera probablement tenue à jour, lors de la mise à jour des éditeurs, même si les réponses sont données sur SO (y compris celui-ci) ne sont pas.

Association d'éditeurs de texte avec git

Le message de Github montre exactement ce qu'il faut taper dans votre ligne de commande pour différents éditeurs, y compris les options/drapeaux spécifiques à chaque éditeur pour que cela fonctionne mieux avec git.

Notepad ++:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Texte sublime:
git config --global core.editor "'c:/Program Files/sublime text 3/subl.exe' -w"

Atome:
git config --global core.editor "atom --wait"

Les commandes ci-dessus supposent que votre éditeur a été installé dans le répertoire par défaut d'une machine Windows.

Les commandes ajoutent essentiellement le texte entre guillemets doubles à .gitconfig dans votre répertoire personnel.
Sous Windows, il est probable que le répertoire utilisateur soit C:\Users\your-user-name, votre nom d’utilisateur étant votre nom de connexion.
À partir de la ligne de commande, vous pouvez accéder à ce répertoire en tapant cd ~.

par exemple, une commande ci-dessus serait d'ajouter la ligne suivante sous la section [core] comme suit:
[core] editor = 'C:/Program Files/sublime text 3/subl.exe' -w

Si vous avez un éditeur différent, remplacez simplement par le chemin d'accès à votre éditeur, en utilisant l'une des méthodes ci-dessus. (et espérons qu'aucun drapeau ne sera nécessaire pour une utilisation optimale.)

9
SherylHohman

Pour les utilisateurs d'emacs

.emacs:

(server-start)

shellrc:

export EDITOR=emacsclient
9
Bendlas

Meilleurs paramètres pour Sublime Text 3 en tant qu'éditeur git (instructions Windows et Linux):

Pour suivre ces instructions sous Windows, assurez-vous d’avoir installé git for Windows . Sous Windows, j'aime utiliser Git BASH pour que cela ressemble davantage à Linux.

Tout d'abord, nous voulons créer un projet spécial Sublime Text afin de pouvoir spécifier les paramètres de projet spéciaux que nous voulons définir chaque fois que git appelle l'éditeur, afin de faciliter la tâche lors de l'édition dans git. Par exemple, je règle normalement ma règle sur 120 caractères dans la plupart des projets, mais pour les messages git commit, je souhaite que ce soit 72 caractères afin qu’elle s’intègre parfaitement dans un terminal lorsque vous appelez _git log_ ou git lg .


1. Créez un projet Sublime Text avec les paramètres que nous souhaitons utiliser pour éditer les messages git commit

Ouvrez Sublime Text et allez dans "Fichier" -> "Nouvelle fenêtre" pour créer un nouveau projet anonyme. Allez dans "Projet" -> "Enregistrer le projet sous ..." et choisissez un emplacement pour l'enregistrer. Sous Linux , je l’ai sauvegardé dans mon répertoire de base Linux sous le nom de fichier _.gitconfig.sublime-project_. Son chemin est donc: _~/.gitconfig.sublime-project_. Sous Windows , enregistrez-le également dans votre répertoire personnel, ex: _C:\Users\MY_USER_NAME\.gitconfig.sublime-project_. Cliquez maintenant sur "Projet" -> "Modifier le projet" pour le modifier. les paramètres du projet. Collez ce qui suit et enregistrez les paramètres. Apportez d'autres modifications aux paramètres de votre projet si vous le souhaitez.

_{
    //For folder settings help see here: https://www.sublimetext.com/docs/3/projects.html 

    "folders":
    [

    ],

    "settings":
    {

        // Disables horizontal scrolling if enabled.
        // May be set to true, false, or "auto", where it will be disabled for
        // source code, and otherwise enabled.
        "Word_wrap": false,

        // Set to a value other than 0 to force wrapping at that column rather than the
        // window width
        "wrap_width": 0,

        // Columns in which to display vertical rulers
        "rulers": [72, 50], //72 is recommended by git for commit message content, and 50 for commit titles

        // The number of spaces a tab is considered equal to
        "tab_size": 4,

        // Set to true to insert spaces when tab is pressed
        "translate_tabs_to_spaces": true,
    },

    "build_systems":
    [

    ]

}
_

2. Configurez l'éditeur à utiliser par git

Nous devons maintenant définir l'éditeur à utiliser par git, en éditant le fichier _.gitconfig_.

Pour Linux:

Votre copie utilisateur sera située dans _~/.gitconfig_. Ouvrez ce fichier et ajoutez les lignes suivantes. Assurez-vous d'utiliser le nom de chemin correct pour le projet git que vous venez de créer ci-dessus! J'utilise _~/.gitconfig.sublime-project_.

_[core]
    editor = subl --project ~/.gitconfig.sublime-project --wait
_

Le _--wait_ est important, car il oblige git à attendre que vous fermiez le fichier avant de continuer. La ligne _--project_ est importante pour indiquer à Sublime Text le projet que vous voulez ouvrir chaque fois que git ouvre Sublime.

La réponse de @ digitaldreamer ci-dessus ( https://stackoverflow.com/a/2596835/4561887 ), "subl peut être remplacée par le chemin complet de l'exécutable mais [l'alias subl] est généralement disponible lorsque [Sublime est] correctement installé. "

Pour les fenêtres:

Pour Windows, lisez d’abord les instructions Linux pour plus d’informations. Maintenant, nous allons faire quelque chose de presque identique.

(FACULTATIF: créez un alias subl à utiliser dans Git BASH):

Ouvrez un éditeur de texte (ex: Notepad, Notepad ++, Sublime Text, Geany, etc.) et créez un fichier appelé ".bash_profile" dans votre répertoire personnel. Son chemin sera donc: _C:\Users\MY_USER_NAME\.bash_profile_. Enregistrez les éléments suivants dans celui-ci:

_alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"
_

Cela crée un alias Git BASH appelé subl que nous pouvons maintenant utiliser dans Git BASH pour Windows pour ouvrir facilement Sublime. Cette étape n'est pas obligatoire, mais elle est utile pour une utilisation générale de Git BASH. Vous pouvez maintenant appeler _subl ._, par exemple, dans Git BASH pour ouvrir un nouveau projet Sublime dans votre répertoire actuel.

(OBLIGATOIRE):

Editez le fichier _.gitconfig_ qui se trouve dans votre répertoire personnel: _C:\Users\MY_USER_NAME\.gitconfig_, en y ajoutant les éléments suivants. Notez les modifications subtiles des instructions Linux ci-dessus:

_[core]
  editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
_
  • Notez que vous devez spécifier le chemin complet de l'exécutable Sublime Text. Notez le sens des barres obliques! Utilisez _/_ NOT _\_ pour séparer les dossiers dans le nom du chemin! (Merci VonC pour m'aider à voir ça ).
  • Notre alias subl que nous avons créé pour Git BASH ci-dessus ne fonctionne pas ici, vous ne pouvez donc pas l'utiliser comme dans l'exemple Linux. Vous devez plutôt spécifier le chemin complet, comme indiqué ci-dessus.
  • Le symbole _~_, cependant, fonctionne toujours ici pour accéder à votre répertoire de base Windows.

2.5. (Facultatif) Installez le package "Git" dans Sublime Text 3.

Cela vous donne la coloration syntaxique pour les messages _git commit_, ainsi que l'accès à d'autres commandes git telles que _git blame_ (que j'utilise fréquemment dans Sublime Text) ou _git commit_ (que je n'utilise pas dans Sublime Text puisque je préférerais la ligne de commande pour le flux général git, comme je l’ai mentionné dans mes commentaires ci-dessous, cette réponse).

Pour installer un package: Tout d'abord, assurez-vous que "Package Control" est installé. Ensuite, appuyez sur Ctrl + Shift + P (identique à Outils → Palette de commandes) et tapez tout ou partie de "Contrôle de package: Installer le package", puis appuyez sur Entrée. Dans la boîte de recherche qui apparaît, recherchez le paquet "Git" et appuyez sur Entrée ou cliquez dessus pour l'installer automatiquement.

Une fois installé, Ctrl + Shift + P puis rechercher "git" fera apparaître les commandes git que vous pouvez utiliser en interne dans Sublime Text, telles que _git blame_.


3. Utilisez-le

Maintenant, lorsque vous appelez _git commit_, par exemple, comme d'habitude depuis la ligne de commande, Sublime Text s'ouvre dans le _.gitconfig.sublime-project_ que nous avons créé ci-dessus, avec les paramètres de ce projet! Au fur et à mesure que vous tapez un paragraphe, vous remarquerez qu'il se prolonge au-delà de la règle que nous avons définie, puisque le retour à la ligne souple est désactivé. Pour forcer le retour automatique à la ligne à la fin de chaque ligne, placez le curseur sur la longue ligne à insérer automatiquement et appuyez sur Alt + Q. Il sera maintenant dur-wrap/hard-fold à 72 caractères, ce qui est défini dans le paramètre "règles" du paramètre de projet ci-dessus.

Maintenant, sauvegardez votre message de commit avec Ctrl + Set quittez (pour compléter votre _git commit_) avec Ctrl + Shift + W.

Terminé!

7
Gabriel Staples

Mvim en tant qu'éditeur Git

Comme toutes les autres applications graphiques, vous devez lancer mvim avec l'indicateur d'attente.

git config --global core.editor "mvim --remote-wait"
3
Matteo Rolla

Pour les utilisateurs Windows qui souhaitent utiliser neovim avec le sous-système Windows pour Linux:

git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"

Ceci n'est pas une solution infaillible car elle ne gère pas le rebasage interactif (par exemple). Les améliorations sont les bienvenues!

2
brcolow

Lors de l'utilisation de git-review, je devais modifier la valeur de sequence.editor pour pouvoir créer une rebase interactive (git rebase -i -p):

git config --global sequence.editor "gvim"  # or whatever your prefer

gvim nécessite: apt install vim-gtk

Références

1
Édouard Lopez

Pour les utilisateurs de TextWrangler à partir du Mac App Store:

git config --global core.editor "open -n -W -a TextWrangler"

Assurez-vous également que votre paramètre "TextWrangler> Préférences> Application> Lorsque TextWrangler devient actif:" est défini sur "Ne rien faire".

Cela fonctionne pour moi sur OS X 10.11.4 avec TextWrangler 5.0.2 depuis le Mac App Store.

Explication:

Le - n signifie ouvert dans une nouvelle instance.

- W signifie attendre que l'application se ferme avant d'utiliser le contenu du fichier modifié en tant que message de validation.

Le - un TextWrangler signifie utiliser l'application TextWrangler pour ouvrir le fichier.

Voir man open dans l'application Terminal de votre Mac pour plus de détails.

1
DLRdave

Essayez juste EDITOR=vim git commit.

Ou vous pouvez configurer votre EDITOR sur vim par export EDITOR=vim dans votre base.

1
Xiao Hanyu