Je préférerais écrire mes messages de commit dans Vim, mais ça les ouvre dans Emacs.
Comment configurer Git pour toujours utiliser Vim? Notez que je veux le faire globalement, pas seulement pour un seul projet.
Je préférerais écrire mes messages de commit dans Vim, mais ça les ouvre dans Emacs.
Comment configurer Git pour toujours utiliser Vim? Notez que je veux le faire globalement, pas seulement pour un seul projet.
Réponses:
Si vous souhaitez définir l'éditeur uniquement pour Git, faites l'une ou l'autre (vous n'avez pas besoin des deux):
core.editor
dans votre configuration Git:git config --global core.editor "vim"
GIT_EDITOR
variable d'environnement:export GIT_EDITOR=vim
Si vous souhaitez définir l'éditeur pour Git et d'autres programmes , définissez les variables normalisées VISUAL
et d' EDITOR
environnement *:
export VISUAL=vim
export EDITOR="$VISUAL"
* La définition des deux n'est pas nécessairement nécessaire, mais certains programmes peuvent ne pas utiliser le plus correct VISUAL
. Voir VISUAL
vsEDITOR
.
Pour Sublime Text : Ajoutez ceci au .gitconfig
. Le --wait
est important (il permet de taper du texte en sublime et attendra l'événement save / close.)
[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é.
git config --global
cela écrirait dans votre fichier de configuration git personnel (par utilisateur). Sur Unices, c'est le cas ~/.gitconfig
. Donc, cela le configurerait pour tous vos référentiels.
git commit --amend
-w
n'est pas nécessaire; -w {scriptout}
enregistre tous les caractères que vous saisissez lors de l'édition pour les rejouer plus tard. Vous le confondez peut-être -f
, ce qui est nécessaire lors de l'appel de la version GUI de Vim. Autrement dit, si vous utilisez mvim
, l'éditeur que vous spécifiez devrait être mvim -f
plutôt que mvim
.
Copiez collez ceci:
git config --global core.editor "vim"
Au cas où vous voudriez savoir ce que vous faites. De man git-commit
:
VARIABLES D'ENVIRONNEMENT ET DE CONFIGURATION
L'éditeur utilisé pour modifier le message du journal de validation sera choisi parmi la
GIT_EDITOR
variable d'environnement, lacore.editor
variable de configuration, laVISUAL
variable d'environnement ou laEDITOR
variable d'environnement (dans cet ordre).
VISUAL
ou EDITOR
, mais ils n'utilisent certainement pas GIT_EDITOR
ou core.editor
.
Sur Ubuntu et Debian (merci @MichielB), changer l'éditeur par défaut est également possible en exécutant:
sudo update-alternatives --config editor
Ce qui entraînera 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:
alternatives
système Debian est un moyen beaucoup plus facile de gérer les valeurs par défaut pour les types de programmes pris en charge. Pour référence: debian-administration.org/article/91/…
GIT_EDITOR
et EDITOR
ne fonctionne pas --ubuntu
update-alternatives
affichera tous les éditeurs qui ont été installés. Koen n'a tout simplement pas Emacs installé.
Sous Windows 7, en ajoutant l'éditeur "Sublime", il me donnait toujours une erreur:
Abandon de la validation en raison d'un message de validation vide.
Sublime n'a pas pu garder le focus.
Pour résoudre ce problème, j'ai ouvert le fichier .gitconfig dans le dossier c: / users / username / et ajouté la ligne suivante avec l'option --wait en dehors des guillemets doubles.
[core]
editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait
J'espère que cela sera utile à quelqu'un confronté à un problème similaire avec Sublime.
git config --global core.editor "'C:/Program Files/Sublime Text 3/subl.exe' --wait"
C:\Users\YOUR_USERNAME\.gitconfig
[core]
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe'
git commit
et appuyez sur Enter
. Il ouvrira Notepad ++.-multiInst
comme paramètre à notepad ++ et éventuellement -notabbar
. Faites cela si git ne semble pas savoir quand vous avez fini de modifier le fichier et attend indéfiniment ou pas du tout.
>git config --global core.editor '"C:/Program Files (x86)/Notepad++/notepad++.exe"'
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar
- c'est-à-dire, les paramètres en dehors des guillemets simples de délimitation
Pour faire de Visual Studio Code (vscode) votre éditeur git par défaut
git config --global core.editor "code --wait"
Et si vous travaillez avec des designers en utilisant la ligne de commande, alors Pico, et que vous ne connaissez pas les raccourcis;)
git config --global core.editor "pico"
Ou
export VISUAL=pico
export EDITOR=pico
git config --global core.editor "atom --wait"
Atom doit être configuré pour s'exécuter à partir de la ligne de commande pour que ce qui précède fonctionne:
OS X : installez les commandes shell depuis Atom: barre de menus> Atom> Installer les commandes shell
Windows : aucune action requise - atom est configuré pour s'exécuter à partir de la ligne de commande par défaut
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"
-w
paramètre. Par exemple. $ git config --global core.editor "code -w"
. Trucs sympas
git config --global core.editor notepad.exe
Frappé Ctrl + Spour enregistrer votre message de validation. Pour supprimer, fermez simplement la fenêtre du bloc-notes sans enregistrer.
Dans le cas où vous appuyez sur le raccourci pour enregistrer, puis décidez d'annuler, allez dans Fichier-> Enregistrer sous, et dans la boîte de dialogue qui s'ouvre, changez "Enregistrer en tant que type" en "Tous les fichiers (*. *)". Vous verrez un fichier nommé "COMMIT_EDITMSG". Supprimez-le et fermez la fenêtre du bloc-notes.
Modifier: Alternativement et plus facilement, supprimez tout le contenu de la fenêtre ouverte du bloc-notes et appuyez sur Enregistrer. (merci mwfearnley pour le commentaire!)
Je pense que pour les petites écritures telles que les messages de validation, le bloc-notes sert mieux, car il est simple, existe avec des fenêtres, s'ouvre en un rien de temps. Même votre sublime peut prendre une seconde ou deux pour démarrer lorsque vous avez une charge de plugins et d'autres choses.
\r\n
(newline dans Windows) et \n
(newline sous linux, également par défaut pour Git).
core.editor = 'notepad' .git/COMMIT_EDITMSG --wait
pour qu'elle s'ouvre et enregistre le message d'édition par défaut et vous n'avez pas besoin de "sauvegarder sous"
Cela fournit une réponse pour les personnes qui arrivent à cette question qui peuvent vouloir lier un éditeur autre que vim.
La ressource liée, par Github , est susceptible d'être tenue à jour, lorsque les éditeurs sont mis à jour, même si les réponses sur SO (y compris celle-ci) ne le sont pas.
Associer des éditeurs de texte à git
Le post de Github montre exactement ce qu'il faut taper dans votre ligne de commande pour divers éditeurs, y compris les options / drapeaux spécifiques à chaque éditeur pour qu'il fonctionne mieux avec git.
Bloc-notes ++:
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.
Sur une machine Windows, il est probable que la maison se trouve C:\Users\your-user-name
, où votre nom d'utilisateur est votre nom de connexion.
Depuis la ligne de commande, vous pouvez accéder à ce répertoire en tapantcd ~
.
par exemple, une commande ci-dessus serait d'ajouter la ligne suivante sous la [core]
section comme ceci:
[core]
editor = 'C:/Program Files/sublime text 3/subl.exe' -w
Si vous avez un éditeur différent, remplacez-le simplement par le chemin d'accès à votre éditeur, en utilisant l'une des méthodes ci-dessus. (et espérons qu'aucun indicateur n'est nécessaire pour une utilisation optimale.)
Pour les utilisateurs emacs
.emacs
:
(server-start)
shellrc
:
export EDITOR=emacsclient
git config --global core.editor "emacs -nw"
git config --global core.editor "emacs -nw -q"
, où les -q
fichiers d'initialisation sont ignorés.
Pour suivre ces instructions dans Windows, assurez-vous d'avoir installé Git pour Windows . Sous Windows, j'aime utiliser Git Bash pour qu'il ressemble plus à Linux.
Tout d'abord, nous voulons créer un projet Sublime Text spécial afin de pouvoir spécifier les paramètres de projet spéciaux que nous voulons définir chaque fois que Git appelle l'éditeur, pour faciliter les choses 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 de validation Git, je veux qu'elle soit de 72 caractères afin qu'elle s'intègre bien dans un terminal lorsque vous appelez git log
ou git lg
.
Ouvrez Sublime Text et allez dans le menu "Fichier" → "Nouvelle fenêtre" pour créer un nouveau projet anonyme. Allez dans le menu "Projet" → "Enregistrer le projet sous ..." et choisissez un emplacement pour l'enregistrer. Sous Linux, je l'ai enregistré dans mon répertoire personnel Linux avec le nom de fichier .gitconfig.sublime-project
. Son chemin est donc: ~/.gitconfig.sublime-project
. Sous Windows, enregistrez-le également dans votre répertoire personnel, par exemple: C:\Users\MY_USER_NAME\.gitconfig.sublime-project
Allez maintenant dans le menu "Projet" → "Modifier le projet" pour 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":
[
]
}
Maintenant, nous devons définir l'éditeur à utiliser par Git, en éditant le .gitconfig
fichier.
Votre copie utilisateur de celui-ci se trouvera dans ~/.gitconfig
. Ouvrez ce fichier et ajoutez les lignes suivantes. Assurez-vous d'utiliser le bon chemin d'accès au 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 la fermeture du fichier avant de continuer. La --project
ligne est importante pour indiquer à Sublime Text le projet que vous souhaitez ouvrir chaque fois que Git ouvre Sublime Text.
Selon la réponse de @ digitaldreamer ci-dessus ( https://stackoverflow.com/a/2596835/4561887 ), " subl
peut être remplacé par le chemin d'accès complet de l'exécutable mais [l'alias subl
] est généralement disponible lorsque [Sublime est] correctement installé".
Pour Windows, lisez d'abord les instructions Linux pour obtenir des informations générales. Maintenant, nous allons faire quelque chose de presque identique.
(FACULTATIF: créez un subl
alias à utiliser dans Git Bash):
Ouvrez un éditeur de texte (par exemple, Bloc-notes, 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-y les éléments suivants:
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 Text. 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 Text dans votre répertoire actuel.
(OBLIGATOIRE):
Modifiez le .gitconfig
fichier trouvé dans votre répertoire personnel C:\Users\MY_USER_NAME\.gitconfig
:, en y ajoutant ce qui suit. Remarquez les changements subtils par rapport aux instructions Linux ci-dessus:
[core]
editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
/
NOT \
pour séparer les dossiers dans le nom du chemin! (Merci VonC de m'avoir aidé à voir cela ).subl
alias que nous avons créé pour Git Bash ci-dessus ne fonctionne pas ici, vous ne pouvez donc pas l'utiliser comme nous l'avons fait dans l'exemple Linux, à la place, vous devez spécifier le chemin complet comme indiqué ci-dessus.~
symbole, cependant, fonctionne toujours ici pour accéder à votre répertoire personnel Windows.Cela vous donne la coloration syntaxique pour les git commit
messages, ainsi que l'accès à d'autres commandes Git telles que git blame
(que j'utilise fréquemment dans Sublime Text) ougit commit
(que je n'utilise pas dans Sublime Text car je préférerais la ligne de commande pour Git général 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(comme Outils → Palette de commandes) et tapez tout ou partie de "Contrôle du package: Installer le package", puis appuyez sur Enter. Dans la boîte de recherche qui apparaît, recherchez le package "Git" et Entercliquez dessus, ou cliquez dessus, pour l'installer automatiquement.
Une fois installé, Ctrl+ Shift+ Ppuis la recherche de "git" fera apparaître des commandes Git que vous pouvez utiliser en interne dans Sublime Text maintenant, comme git blame
.
Maintenant, lorsque vous appelez git commit
, par exemple, comme d'habitude à partir de la ligne de commande, Sublime Text s'ouvrira dans celui que .gitconfig.sublime-project
nous avons créé ci-dessus, avec les paramètres de ce projet! Lorsque vous tapez un paragraphe, vous remarquerez qu'il s'étend au-delà de la règle que nous avons définie car le retour automatique à la ligne est désactivé. Pour forcer un retour à la ligne dur via des retours en dur insérés automatiquement à la fin de chaque ligne, placez votre curseur sur la longue ligne que vous souhaitez envelopper automatiquement et appuyez sur Alt+ Q. Il va maintenant être enroulé / plié en dur à 72 caractères, ce que nous avons défini dans le paramètre "règles" des paramètres du projet ci-dessus.
Maintenant, enregistrez votre message de validation avec Ctrl+ Set quittez (pour terminer votre git commit
) avec Ctrl+ Shift+ W.
Terminé!
Git Commit
type de syntaxe. Vous pouvez ignorer l'étape personnalisée "Projet de texte sublime" maintenant.
sublime
avec git
et utilisez également, trim_trailing_white_space_on_save
vous souhaitez ajouter un alias pour l'ajout de correctif, car la suppression de l'espace blanc de fin interrompt les modifications de correctif là où cela est très significatif. Cela peut être réalisé avec quelque chose comme ceci:git config --global alias.patch "-c core.editor=vim add --patch"
Comme toutes les autres applications GUI, vous devez lancer mvim avec l'indicateur d'attente.
git config --global core.editor "mvim --remote-wait"
--remote-wait-silent
pour éviter un vilain message d'erreur :)
Pour les utilisateurs de 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'"
Ce n'est pas une solution infaillible car elle ne gère pas le rebasage interactif (par exemple). Des améliorations très bienvenues!
Essayez EDITOR=vim git commit
.
Ou vous pouvez configurer votre EDITEUR pour vim by export EDITOR=vim
dans votre bashrc.
git config --global core.editor "open -n -W -a TextWrangler"
Assurez-vous également que le 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 de la boutique d'applications Mac.
Explication:
Le -n signifie ouvrir dans une nouvelle instance.
Le -W signifie attendre la fin de l'application avant d'utiliser le contenu du fichier modifié comme message de validation.
Les -a textwrangler signifie utiliser l'application textwrangler pour ouvrir le fichier.
Voir man open
dans votre application Mac Terminal pour plus de détails.
git config --global core.editor "edit -w"
. Cela ouvrira le message de validation dans l'instance actuelle et dès que vous fermerez uniquement ce document de message de validation, la validation continuera.
Lors de l'utilisation, git-review
j'ai dû modifier la sequence.editor
valeur pour pouvoir faire un rebase interactif ( git rebase -i -p
):
git config --global sequence.editor "gvim" # or whatever your prefer
gvim
exiger: apt install vim-gtk
Pour Mac OS X, en utilisant TextEdit ou l'éditeur d'environnement naturel pour le texte:
git config --global core.editor "open -W -n"
Tout simplement parce que je suis venu ici à la recherche d'une solution unique (dans mon cas, j'utilise généralement vim
mais cette fois-ci, je voulais utiliser VS Code) pour une seule commande et que d'autres voudraient peut-être également savoir:
GIT_EDITOR='code -w' git rebase -i …
Voici ma git
/ hub
version juste pour le contexte:
git version 2.24.2 (Apple Git-127)
hub version 2.14.1
Pour les utilisateurs d'IntelliJ
Lorsque j'essayais de git rebaser, j'obtenais l'erreur suivante: 'indice: en attente de la fermeture du fichier par votre éditeur ... code -n -w: code: commande introuvable erreur: il y avait un problème avec le code de l'éditeur' -n -w '.'
La même erreur est apparue lorsque j'essayais d'associer IntelliJ à Git:
Le problème était que je n'avais pas ajouté le code de commande dans ma variable d'environnement PATH. Et je ne voulais pas utiliser Visual Studio Code depuis mon terminal. C'est pourquoi il a invité "commande introuvable". J'ai résolu cela en supprimant
éditeur = code -n -w
à partir de la section principale de mon fichier .gitconfig. Git a de nouveau fonctionné correctement.
Cela ouvre l'éditeur Textmate lorsque vous souhaitez modifier vos validations. Nécessite l'installation des outils de ligne de commande textmate.
git config --global core.editor "mate -w"
git config --global core.editor "/usr/local/bin/mate -w"
Créez un fichier appelé 'k.sh', ajoutez le texte suivant et placez-le dans votre répertoire personnel (~):
winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1
À l'invite git, tapez:
git config --global core.editor ~/k.sh