Come posso rendere Sublime Text l'editor predefinito per Git?


216

Ho un problema a impostare Sublime Text 2 come core.editorcon git.

Ho letto tutti i post che ho trovato per risolvere il problema, ma non funziona ancora nulla per me. Sto eseguendo Windows.

Ho fatto:

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

e ci ho provato con vari argomenti come -m. Quando apro il mio .gitconfig, ecco cosa c'è dentro:

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

Se vado su Git e digito:

README.markdown --edit

il file README si apre in Blocco note, non in Sublime Text.

Qualcuno ha idea di cosa sto facendo di sbagliato o di come potrei risolvere questo problema?


11
Se stai digitando solo README.markdown --edit in cmd.exe, gitnon è affatto coinvolto. Cambia le tue associazioni di file in Windows se vuoi che funzioni.
Mat

1
Una FYI generale per la maggior parte delle risposte di seguito: -wsignifica "Attendi che il file venga chiuso prima di tornare" e -nsignifica "Apri una nuova finestra". Fonte: docs.sublimetext.info/en/latest/command_line/command_line.html
MarredCheese

Le mie impostazioni preferite per l'uso di Sublime Text 3 come editor git: stackoverflow.com/questions/2596805/…
Gabriel Staples

Risposte:


343

finestre

Sublime Text 2 (Build 2181)

L'ultima build 2181 ha appena aggiunto il supporto per l' -wargomento della riga di comando (wait). La seguente configurazione consentirà a ST2 di funzionare come editor git predefinito su Windows. Ciò consentirà a git di aprire ST2 per i messaggi di commit e simili.

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) ha aggiunto l' subl.exehelper della riga di comando. Utilizzare subl.exe -hper le opzioni disponibili. Ho hot_exit: truee remember_open_files: trueimpostato le mie impostazioni utente di Sublime Text. Ho trovato quanto segue per git config per funzionare bene per me.

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

Mac e Linux

Imposta Sublime come editor per Git digitando il seguente comando nel terminale:

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


Con questa configurazione di Git, la nuova scheda viene aperta nel mio editor. Modifico il mio messaggio di commit, salvo la scheda ( Ctrl+ S) e la chiudo ( Ctrl+ W).

Git attenderà fino alla chiusura della scheda per continuare il suo lavoro.


14
Personalmente, oltre a impostare il mio editor come suggerisce @jrotello, la mia esperienza ST2 / git è migliorata molto quando aggiungo le seguenti opzioni alle mie impostazioni ST2: {"hot_exit": false, "remember_open_files": false, "close_windows_when_empty": true }
Sandy,

6
@Phrogz: Sono stato in grado di farlo funzionare nel mio .gitconfig con la seguente sintassi:editor = 'C:\\Program Files\\Sublime Text 2\\sublime_text.exe' -w
awayken

4
Per me, questo aprirà una nuova scheda se il testo sublime è già aperto. Chiudendo la scheda, non si fa sapere a Git che è stato fatto. Ho provato - multiistanza, ma non sembra fare nulla.
David Faivre,

5
notare che quando hot_exitè falso e le luci si sono spente tutto il lavoro non salvato inizierà! !!!!!!!!!!
Jürgen Paul,

4
In realtà, usando "-n -w", git non sembra in grado di dire che la finestra di testo sublime si è chiusa (se almeno ho una finestra sublime esistente aperta). "-w --multiinstance" sembra funzionare ancora meglio, sebbene nella nuova finestra sublime tutte le schede esistenti vengano riaperte. Sembra che possano essere tranquillamente ignorati.
David Faivre,

94

Puoi usare questo comando su Mac e Linux:

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

26
In realtà, la raccomandazione su Mac in questi giorni è di collegare simbolicamente subl da qualche parte nel tuo $ PATH e impostare il tuo editor su 'subl -w'. È nei documenti ufficiali.
Sandy,

8
I documenti a cui ho fatto riferimento sono: sublimetext.com/docs/2/osx_command_line.html
Sandy

8
I documenti dicono di usare subl -w, ma se hai altre schede aperte questo non funzionerà correttamente. Ho trovato che subl -n -wfunziona meglio poiché apre una nuova finestra.
iano,

1
@iano se lo faccio dovrei chiudere la scheda o chiudere la finestra per eseguire il commit? Chiudi finestra non ha funzionato
Karthik T

Questo apre un documento vuoto in sublime per me fino a quando ho seguito queste istruzioni: sublimetext.com/docs/3/osx_command_line.html ma ho cambiato il percorso da Sublime Text.app a Sublime Text 2.app
Evanss

14

Per Mac OS X nel file ~ / .gitconfig in [core] ho dovuto inserire questo codice per risolvere il problema da parte mia.

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

Questo era quando subl funzionava bene ma Git non era in grado di accedervi. E stava mostrando questi errori

subl -n -w: subl: command not found
error: There was a problem with the editor 'subl -n -w'.

11

Per Mac e Sublime Text 3 :

Se git config --global core.editor "subl -n -w"non funziona, utilizzare questo git configcomando:

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

Nota: non contiene barre rovesciate di escape.


7

cosa ha funzionato per me in cygwin / zsh:

in / usr / local / bin crea il file subl_git

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

in gitconfig:

editor = /usr/local/bin/subl_git

scusa la mia domanda da principiante ma come posso accedere a gitconfig? È diverso dal correre git config --list? Grazie in anticipo.
Ryan Chase,

che li elenca semplicemente. hai bisogno di modificare il tuo gitconfig
meeech l'

Avevo uno spazio nella mia cartella utente, quindi ho usato un modificato -"/cygdrive/c/Program Files/Sublime Text 3/subl.exe" -w -n "`cygpath -d -w "$@"`
Mark

6

Con Sublime Text 2 e la seguente configurazione, se non accade nulla quando si chiude il file di commento di git commit:

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

Se il commit di git non termina quando si chiude il file di commento COMMIT_EDITMSG in Sublime, ho scoperto che ciò è probabilmente dovuto al fatto che si sta eseguendo CMD in modalità amministratore (e si ha già aperto un Sublime Text in modalità non admin). Ho avuto lo stesso problema e ha funzionato per me quando ho avviato il mio CMD in modalità normale.

Ps: volevo solo rispondere al problema che @david ha sottolineato nei commenti della risposta accettata, ma non ho potuto postare un commento dato che sono nuovo qui ... quindi ho fatto una nuova risposta, perché penso che possa essere utile per alcune persone che incontrano il problema.


Grazie per il consiglio. Conosci una soluzione?
Scott Wegner,

@ScottWegner È sufficiente avviare CMD in modalità non amministratore, come soluzione alternativa. Non è necessario essere in modalità amministratore per eseguire i comandi git. Tuttavia, se hai davvero bisogno di essere in modalità amministratore, non ho trovato la soluzione per questo, tranne aprire un'altra istanza CMD.
Francois,

grazie per il follow-up. Finisco con shell elevate perché il mio ambiente di sviluppo richiede la modalità admin per altri strumenti (Visual Studio), quindi eseguo l'intera shell in modo elevato. Penso che esplorerò solo elevando gli strumenti che ne hanno bisogno.
Scott Wegner,

1
@ScottWegner Uso personalmente Cmder (la versione completa include anche msysgit). Permette molteplici istanze di CMD, bash o altri gusci, in una finestra unica con schede. Puoi avviare alcune schede in modalità amministratore e altre in modalità normale. Di solito ho una scheda dedicata a Git e altre schede per i miei altri strumenti. Forse saresti interessato a provarlo. È un ottimo strumento!
Francois,

re: modalità admin - penso che il trucco sia che la tua shell e il tuo sublime debbano usare gli stessi privilegi. vale a dire che se il tuo terminale è elevato e anche il sublime è elevato, funziona senza problemi.
Joseph Evensen,

5

L'ho appena fatto con successo con l'aiuto di PowerShell (strumenti da riga di comando per Windows, che può anche essere utilizzato come riga di comando predefinita su GithubforWindows)

Basta creare una cartella "WindowsPowerShell" su "C: \ Users \% username% \ My Documents". Quindi, crea un file chiamato "profile.ps1". Assicurati di avere l'estensione di file corretta, .ps1 e non .txt. all'interno di profile.ps1, inserisci questa riga per impostare un comando alias:

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

Assicurati che la directory sublime sul tuo computer sia corretta. Puoi anche vedere i dettagli di configurazione qui .

Ora posso modificare i file con Sublime Text 2 tramite il comando PowerShell semplicemente digitando:

subl filename

Speriamo che questo sia utile ...


4
Per aprire la cartella corrente in Sublime Text 2, è possibile utilizzare: subl .
awayken

Per Sublime Text 3, utilizzare il nuovo subl.exe:Set-Alias subl 'c:\program files\sublime text 3\subl.exe'
wtjones,

3

Stasera ho riscontrato lo stesso problema con l' editor git in Windows e finalmente ce l'ho.

Dovrai impostare il tuo percorso dell'editor con la sintassi bash e usare il formato DOS 8.3 per evitare spazi :

Questo non funziona (per me):

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

Questo fa:

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

È possibile ottenere il nome DOS 8.3 per una directory con dir / x


1

Stavo lottando con questo per qualche motivo, nessuno degli esempi sopra ha funzionato abbastanza per me. Questa era la mia soluzione comunque:

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

In particolare, hai bisogno del ' 'around the path e $*del end of the args, all in " ".


1

Se sei un utente Mac, ecco come:

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

1

bene, ho avuto qualche problema a invocare notepad ++ da gitbash anche dopo averlo impostato come mio core.editor.

ho risolto tutto aggiungendo la riga seguente al mio file .bashrc nella mia directory di installazione di gitbash.

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

così, posso invocare notepad ++ con l'alias "npp". penso che questo possa aiutarti se cambi la directory nel rispettivo editor che vuoi usare.


1

Per gli utenti MAC posso dire che per Sublime utilizzare quanto segue:

Prima controlla il file .gitconfig usando il comando:

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

Ora è possibile aggiungere questa configurazione:

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

Dove l1dirà di iniziare alla linea 1.


0

Per Windows 7 ho trovato la seguente soluzione funziona:

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

0

Su Windows, se stai installando git, puoi selezionare un altro editor e dare la seguente riga di comando. C: \ Programmi \ Sublime Text 3 \ sublime_text.exe -w Immagine installatore


0

Non ho visto alcun caso di aggiornamenti riguardo a Windows che permettesse all'installazione di Git di selezionare attivamente Sublime Text come l'editor di testo predefinito senza tutto lo slancio e il trascinamento dei codici di override originali ... Testo sublime mostrato come opzione nella (re) installazione di Git


0

Su MacOS (Mojave) di seguito funziona per me per Sublime 3 :

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.