Comment puis-je faire de Sublime Text l'éditeur par défaut de Git?

216

J'ai un problème avec Sublime Text 2 comme paramètre core.editoravec git.

J'ai lu tous les articles que j'ai pu trouver pour résoudre le problème, mais rien ne fonctionne toujours pour moi. J'utilise Windows.

J'ai fait:

git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe'"

et essayé cela avec divers arguments comme -m. Lorsque j'ouvre mon .gitconfig, voici ce qu'il y a dedans:

[user]
    name = Spencer Moran
    email = [email protected]
[core]
    editor = 'C:/Program Files/Sublime Text 2/sublime_text.exe'

Si je vais dans Git et tape:

README.markdown --edit

le fichier README s'ouvre dans le Bloc-notes, pas dans Sublime Text.

Quelqu'un a-t-il une idée de ce que je fais mal ou comment je pourrais résoudre ce problème?

Spencer Moran
la source
11
Si vous tapez uniquement README.markdown --edit dans cmd.exe, ce gitn'est pas du tout impliqué. Modifiez vos associations de fichiers dans Windows si vous souhaitez que cela fonctionne.
Mat
1
Un FYI général pour la plupart des réponses ci-dessous: -wsignifie «Attendez que le fichier soit fermé avant de revenir» et -nsignifie «Ouvrir une nouvelle fenêtre». Source: docs.sublimetext.info/en/latest/command_line/command_line.html
MarredCheese
Mes paramètres préférés pour utiliser Sublime Text 3 comme mon éditeur git: stackoverflow.com/questions/2596805/…
Gabriel Staples

Réponses:

343

les fenêtres

Sublime Text 2 (Build 2181)

Le dernier build 2181 vient d'ajouter la prise en charge de l' -wargument de ligne de commande (wait). La configuration suivante permettra à ST2 de fonctionner comme votre éditeur git par défaut sous Windows. Cela permettra à git d'ouvrir ST2 pour les messages de validation et autres.

git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w"

Sublime Text 3 (Build 3065)

Sublime Text 3 (Build 3065) a ajouté l' subl.exeassistant de ligne de commande. Utilisez subl.exe -hpour les options qui s'offrent à vous. J'ai hot_exit: trueet remember_open_files: truedéfini mes paramètres utilisateur Sublime Text. J'ai trouvé ce qui suit pour que git config fonctionne bien pour moi.

git config --global core.editor "'c:/program files/sublime text 3/subl.exe' -w"

Mac et Linux

Définissez Sublime comme éditeur pour Git en tapant la commande suivante dans le terminal:

git config --global core.editor "subl -n -w"


Avec cette configuration Git, le nouvel onglet est ouvert dans mon éditeur. Je modifie mon message de validation, enregistre l'onglet ( Ctrl+ S) et le ferme ( Ctrl+ W).

Git attendra la fermeture de l'onglet pour continuer son travail.

jrotello
la source
14
Personnellement, en plus de définir mon éditeur comme le suggère @jrotello, mon expérience ST2 / git s'est beaucoup améliorée lorsque j'ajoute les options suivantes à mes paramètres ST2: {"hot_exit": false, "Remember_open_files": false, "close_windows_when_empty": true }
Sandy
6
@Phrogz: J'ai pu le faire fonctionner dans mon .gitconfig avec la syntaxe suivante:editor = 'C:\\Program Files\\Sublime Text 2\\sublime_text.exe' -w
awayken
4
Pour moi, cela ouvrira un nouvel onglet si le texte sublime est déjà ouvert. Fermer l'onglet ne permet pas à git de savoir que c'est fait. J'ai essayé - plusieurs fois, mais cela ne semble rien faire.
David Faivre
5
notez que quand hot_exitc'est faux et que les lumières se sont éteintes tout le travail non sauvegardé commencera !!!!!!!!!!
Jürgen Paul
4
En fait, en utilisant "-n -w", git ne semble pas être capable de dire que la fenêtre de texte sublime s'est fermée (si j'ai au moins une fenêtre sublime existante ouverte). "-w --multiinstance" semble toujours fonctionner le mieux, bien que dans la nouvelle fenêtre sublime tous les onglets existants soient rouverts. Il semble qu'ils puissent être ignorés en toute sécurité.
David Faivre
94

Vous pouvez utiliser cette commande sur Mac et Linux:

git config --global core.editor "subl -n -w"
sfufoet
la source
26
En fait, la recommandation sur Mac ces jours-ci est de lier symboliquement subl à quelque part dans votre $ PATH et de définir votre éditeur sur 'subl -w'. C'est dans les documents officiels.
Sandy
8
Les documents auxquels j'ai fait référence sont: sublimetext.com/docs/2/osx_command_line.html
Sandy
8
Les documents disent d'utiliser subl -w, mais si vous avez d'autres onglets ouverts, cela ne fonctionnera pas correctement. J'ai trouvé subl -n -wque ça fonctionnait mieux car il ouvre une nouvelle fenêtre.
iano
1
@iano si je le fais, dois-je fermer l'onglet ou fermer la fenêtre pour valider? fermer la fenêtre n'a pas fonctionné
Karthik T
Cela ouvre un document vide dans sublime pour moi jusqu'à ce que je suive ces instructions: sublimetext.com/docs/3/osx_command_line.html mais j'ai changé le chemin de Sublime Text.app à Sublime Text 2.app
Evanss
14

Pour Mac OS X dans le fichier ~ / .gitconfig sous [core], j'ai dû mettre ce code pour résoudre le problème de mon côté.

editor = /Applications/Sublime\\ Text.app/Contents/SharedSupport/bin/subl  -n -w

C'était quand subl fonctionnait bien mais git n'a pas pu y accéder. Et affichait ces erreurs

subl -n -w: subl: command not found
error: There was a problem with the editor 'subl -n -w'.
Ahmad Awais
la source
11

Pour Mac et Sublime Text 3 :

Si git config --global core.editor "subl -n -w"cela ne fonctionne pas, utilisez cette git configcommande:

$ git config --global core.editor "'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl' -n -w"

Remarque: il ne contient pas de barres obliques inverses.

nu-bo
la source
7

ce qui a fonctionné pour moi dans cygwin / zsh:

dans / usr / local / bin créer un fichier subl_git

#!/bin/bash
/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -w -n `cygpath -w $@`

dans gitconfig:

editor = /usr/local/bin/subl_git
meeech
la source
excusez ma question de débutant, mais comment puis-je accéder au gitconfig? Est-ce différent de courir git config --list? Merci d'avance.
Ryan Chase
qui les énumère. vous devez éditer votre gitconfig
meeech
J'avais un espace dans mon dossier utilisateur, j'ai donc utilisé une version modifiée -"/cygdrive/c/Program Files/Sublime Text 3/subl.exe" -w -n "`cygpath -d -w "$@"`
Mark
6

Avec Sublime Text 2 et la configuration suivante, si rien ne se produit lorsque vous fermez le fichier de commentaires de git commit:

git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w"

Si la validation git ne se termine pas lorsque vous fermez le fichier de commentaires COMMIT_EDITMSG dans Sublime, j'ai trouvé que c'est probablement parce que vous exécutez CMD en mode administrateur (et qu'un texte Sublime est déjà ouvert en mode non administrateur). J'ai eu le même problème et cela a fonctionné pour moi lorsque j'ai démarré mon CMD en mode normal.

Ps: je voulais juste répondre au problème indiqué par @david dans les commentaires de la réponse acceptée, mais je ne pouvais pas poster de commentaire car je suis nouveau ici ... j'ai donc fait une nouvelle réponse, car je pense que cela peut être utile à certaines personnes rencontrant le problème.

François
la source
Merci pour le conseil. Connaissez-vous une solution?
Scott Wegner
@ScottWegner Il suffit de lancer votre CMD en mode non administrateur, comme solution de contournement. Vous n'avez pas besoin d'être en mode administrateur pour exécuter les commandes git. Cependant, si vous devez vraiment être en mode administrateur, je n'ai pas trouvé de solution à cela, sauf ouvrir une autre instance CMD.
François
Merci pour le suivi. Je me retrouve avec des shells élevés car mon environnement de développement nécessite un mode administrateur pour d'autres outils (Visual Studio), donc j'exécute tout mon shell en hauteur. Je pense que je vais explorer seulement élever les outils qui en ont besoin.
Scott Wegner
1
@ScottWegner J'utilise personnellement Cmder (la version complète inclut même msysgit). Il permet plusieurs instances de CMD, bash ou autres Shells, dans une fenêtre unique avec des onglets. Vous pouvez lancer certains onglets en mode administrateur et d'autres en mode normal. J'ai généralement un onglet dédié à git et d'autres onglets pour mes autres outils. Peut-être seriez-vous intéressé à essayer. C'est un excellent outil!
François
re: mode admin - je pense que l'astuce est que votre shell et sublime doivent utiliser les mêmes privilèges. c'est-à-dire que si vous exécutez votre terminal élevé et sublime est également élevé, cela fonctionne en douceur.
Joseph Evensen
5

Je viens de réussir avec l'aide de PowerShell (outils de ligne de commande pour Windows, qui est également utilisé comme ligne de commande par défaut sur GithubforWindows)

Créez simplement un dossier "WindowsPowerShell" sur "C: \ Users \% username% \ My Documents". Créez ensuite un fichier appelé "profile.ps1". Assurez-vous que vous disposez de l'extension de fichier correcte, .ps1 et non .txt. à l'intérieur de profile.ps1, mettez cette ligne pour définir une commande d'alias:

Set-Alias subl 'c:\program files\sublime text 2\sublime_text.exe'

Assurez-vous que le répertoire sublime de votre machine est correct. Vous pouvez également voir les détails de configuration ici .

Maintenant, je peux éditer des fichiers avec Sublime Text 2 via la commande PowerShell simplement en tapant:

subl filename

J'espère que c'est utile ...

rwinzhang
la source
4
Pour ouvrir le dossier actuel dans Sublime Text 2, vous pouvez utiliser: subl .
awayken
Pour Sublime Text 3, utilisez le nouveau subl.exe:Set-Alias subl 'c:\program files\sublime text 3\subl.exe'
wtjones
3

J'ai rencontré le même problème avec l' éditeur git dans Windows ce soir, et enfin je l'ai.

Vous devrez définir le chemin de votre éditeur avec la syntaxe bash et utiliser le format DOS 8.3 pour éviter les espaces :

Cela ne fonctionne pas (pour moi):

git config --global core.editor "C://Program files/Sublime Text/sublime_text.exe"

Cela:

git config --global core.editor /C/PROGRA~1/SUBLIME~1/sublime_text.exe

Vous pouvez obtenir le nom DOS 8.3 d'un répertoire avec dir / x

Diego Buendia
la source
1

Je me débattais avec cela pour une raison quelconque, aucun des exemples ci-dessus ne fonctionnait tout à fait pour moi. C'était ma solution cependant:

 git config --global core.editor "'c:/<path to sublime>/sublime_text.exe' -w $*"

Vous avez spécifiquement besoin du ' 'autour du chemin et $*de la fin des arguments, tout en " ".

justin.m.chase
la source
1

Si vous êtes un utilisateur Mac, voici comment:

git config --global core.editor '/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'
mainframer
la source
1

eh bien, j'ai eu du mal à invoquer le bloc-notes ++ de gitbash même après l'avoir défini comme mon core.editor.

j'ai tout résolu en ajoutant la ligne ci-dessous à mon fichier .bashrc dans mon répertoire d'installation de gitbash.

alias npp='winpty "C:/Program Files (x86)/Notepad++/notepad++.exe"'

donc, je peux invoquer notepad ++ avec l'alias "npp". je pense que cela peut vous aider si vous changez le répertoire en l'éditeur respectif que vous souhaitez utiliser.

OLATOMIDE
la source
1

Pour les utilisateurs MAC, je peux dire que pour Sublime, utilisez ce qui suit:

Vérifiez d'abord le fichier .gitconfig à l'aide de la commande:

  1. cd ~
  2. ls -la
  3. cat .gitconfig

Maintenant, on peut ajouter cette configuration:

git config --global core.editor "subl -n -wl1"

l1dira de commencer à la ligne 1.

bvmCoder
la source
0

Pour Windows 7, j'ai trouvé que la solution suivante fonctionne:

git config --global core.editor "C:/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -n -w"
tscott1
la source
0

Sous Windows, si vous installez git, vous pouvez sélectionner un autre éditeur et donner la ligne de commande suivante. C: \ Program Files \ Sublime Text 3 \ sublime_text.exe -w Image de l'installateur

Xavier John
la source
0

Je n'ai vu aucune instance de mises à jour concernant Windows permettant à l'installation de Git de choisir activement Sublime Text comme éditeur de texte par défaut sans toute la résistance et le drang des codes de remplacement d'origine ... Texte sublime présenté comme option dans la (ré) installation de Git

Angelfirenze
la source
0

Sur MacOS (Mojave) ci-dessous fonctionne pour moi pour Sublime 3 :

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

Pratik Patel
la source