¿Cómo puedo hacer que Sublime Text sea el editor predeterminado para Git?

216

Tengo un problema al configurar Sublime Text 2 como core.editor con git.

He leído todas las publicaciones que pude encontrar abordando el problema, pero aún así nada funciona para mí. Estoy ejecutando Windows

He hecho:

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

e intenté eso con varios argumentos como -m. Cuando abro mi .gitconfig, esto es lo que hay allí:

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

Si voy a Git y escribo:

README.markdown --edit

el archivo README se abre en el Bloc de notas, no en Sublime Text.

¿Alguien tiene alguna idea de lo que estoy haciendo mal o cómo podría solucionar esto?

Spencer Moran
fuente
11
Si está escribiendo solo README.markdown --edit en cmd.exe, gitno está involucrado en absoluto. Cambia tus asociaciones de archivos en Windows si quieres que eso funcione.
Mat
1
Un FYI general para la mayoría de las respuestas a continuación: -wsignifica "Espere a que se cierre el archivo antes de regresar" y -nsignifica "Abrir una nueva ventana". Fuente: docs.sublimetext.info/en/latest/command_line/command_line.html
MarredCheese
Mi configuración favorita para usar Sublime Text 3 como mi editor git: stackoverflow.com/questions/2596805/…
Gabriel Staples

Respuestas:

343

Ventanas

Sublime Text 2 (Build 2181)

La última compilación 2181 acaba de agregar soporte para el -wargumento de la línea de comandos (esperar). La siguiente configuración permitirá que ST2 funcione como su editor git predeterminado en Windows. Esto permitirá que git abra ST2 para enviar mensajes y tal.

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) agregó el subl.exeasistente de línea de comando. Use subl.exe -hpara las opciones disponibles para usted. Tengo hot_exit: truey remember_open_files: trueconfiguré mi configuración de usuario de Sublime Text. He encontrado lo siguiente para que git config funcione bien para mí.

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

Mac y Linux

Configure Sublime como su editor para Git escribiendo el siguiente comando en la terminal:

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


Con esta configuración de Git, la nueva pestaña se abre en mi editor. Edito mi mensaje de confirmación, guardo la pestaña ( Ctrl+ S) y la cierro ( Ctrl+W ).

Git esperará hasta que la pestaña se cierre para continuar su trabajo.

jrotello
fuente
14
Personalmente, además de configurar mi editor como sugiere @jrotello, mi experiencia ST2 / git mejoró mucho cuando agregué las siguientes opciones a mi configuración ST2: {"hot_exit": false, "remember_open_files": false, "close_windows_when_empty": true }
Sandy
66
@Phrogz: pude hacer que funcionara en mi .gitconfig con la siguiente sintaxis:editor = 'C:\\Program Files\\Sublime Text 2\\sublime_text.exe' -w
ausente
44
Para mí, esto abrirá una nueva pestaña si el texto sublime ya está abierto. Al cerrar la pestaña, no deja que git sepa que está hecho. He intentado con varias instancias, pero no parece hacer nada.
David Faivre
55
tenga en cuenta que cuando hot_exites falso y las luces se apagan todo el trabajo no guardado se irá !!!!!!!!!!
Jürgen Paul
44
En realidad, usando "-n -w", git no parece capaz de decir que la ventana de texto sublime se cerró (si tengo una ventana sublime existente abierta al menos). "-w --multiinstance" todavía parece funcionar mejor, aunque en la nueva ventana sublime se vuelven a abrir las pestañas existentes. Parece que pueden ser ignorados con seguridad.
David Faivre
94

Puede usar este comando en Mac y Linux:

git config --global core.editor "subl -n -w"
sfufoet
fuente
26
En realidad, la recomendación en Mac en estos días es vincular subl a subl en algún lugar de su $ PATH y configurar su editor en 'subl -w'. Está en los documentos oficiales.
Sandy
8
Los documentos a los que me referí son: sublimetext.com/docs/2/osx_command_line.html
Sandy
8
Los documentos dicen usar subl -w, pero si tiene otras pestañas abiertas, esto no funcionará correctamente. He encontrado que subl -n -wfunciona mejor ya que abre una nueva ventana.
iano
1
@iano si hago eso, ¿debo cerrar la pestaña o cerrar la ventana para confirmar? cerrar ventana no funcionó
Karthik T
Esto abre un documento vacío en sublime para mí hasta que seguí estas instrucciones: sublimetext.com/docs/3/osx_command_line.html pero cambié la ruta de Sublime Text.app a Sublime Text 2.app
Evanss
14

Para Mac OS X en el archivo ~ / .gitconfig bajo [core] tuve que poner este código para resolver el problema de mi parte.

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

Esto fue cuando subl funcionaba bien pero git no pudo acceder a él. Y estaba mostrando estos errores

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

Para Mac y Sublime Text 3 :

Si git config --global core.editor "subl -n -w"no funciona, use este git configcomando:

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

Nota: no contiene barras invertidas de escape.

nu-bo
fuente
7

lo que funcionó para mí en cygwin / zsh:

en / usr / local / bin crear archivo subl_git

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

en gitconfig:

editor = /usr/local/bin/subl_git
meeech
fuente
disculpe mi pregunta de novato, pero ¿cómo accedo al gitconfig? ¿Es esto diferente a correr git config --list? Gracias por adelantado.
Ryan Chase
eso solo los enumera. necesitabas editar tu gitconfig
meeech
Yo tenía un espacio en mi carpeta de usuario, así que utiliza una versión modificada -"/cygdrive/c/Program Files/Sublime Text 3/subl.exe" -w -n "`cygpath -d -w "$@"`
Marcos
6

Con Sublime Text 2 y la siguiente configuración, si no sucede nada cuando cierra el archivo de comentarios de git commit:

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

Si el git commit no termina cuando cierra el archivo de comentarios COMMIT_EDITMSG en Sublime, he descubierto que esto probablemente se deba a que está ejecutando CMD en modo administrador (y ya tiene un Texto Sublime abierto en modo no administrativo). Tuve el mismo problema y funcionó para mí cuando comencé mi CMD en modo normal.

PD: solo quería responder al problema que @david señaló en los comentarios de la respuesta aceptada, pero no pude publicar comentarios ya que soy nuevo aquí ... así que hice una nueva respuesta, porque creo que esto puede ser útil para algunas personas que encuentran el problema.

Francois
fuente
Gracias por el consejo. ¿Conoces una solución?
Scott Wegner
@ScottWegner Simplemente inicie su CMD en modo no administrativo, como solución alternativa. No necesita estar en modo administrador para ejecutar comandos git. Sin embargo, si realmente necesita estar en modo administrador, entonces no encontré una solución para esto, excepto abrir otra instancia de CMD.
Francois
Gracias por el seguimiento. Termino con shells elevados porque mi entorno de desarrollo requiere el modo de administración para otras herramientas (Visual Studio), por lo que ejecuto todo mi shell elevado. Creo que exploraré solo elevando las herramientas que lo necesitan.
Scott Wegner
1
@ScottWegner Yo personalmente uso Cmder (la versión completa incluso incluye msysgit). Permite múltiples instancias de CMD, bash u otros Shells, en una ventana única con pestañas. Puede iniciar algunas pestañas en modo administrador y otras en modo normal. Por lo general, tengo una pestaña dedicada a git y otras pestañas para mis otras herramientas. Quizás te interesaría intentarlo. ¡Es una gran herramienta!
Francois
re: modo administrador: creo que el truco es que su shell y sublime deben estar usando los mismos privilegios. es decir, si está ejecutando su terminal elevada y sublime también está elevada, funciona sin problemas.
Joseph Evensen el
5

Lo logré con éxito con la ayuda de PowerShell (herramientas de línea de comandos para Windows, que también se usa como la línea de comandos predeterminada en GithubforWindows)

Simplemente haga una carpeta "WindowsPowerShell" en "C: \ Users \% username% \ My Documents". Luego, cree un archivo llamado "profile.ps1". Asegúrese de tener la extensión de archivo correcta, .ps1 y no .txt. dentro de profile.ps1, ponga esta línea para establecer un comando de alias:

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

Asegúrese de que el directorio sublime en su máquina sea correcto. También puede ver los detalles de configuración aquí .

Ahora, puedo editar archivos con Sublime Text 2 a través del comando PowerShell simplemente escribiendo:

subl filename

Espero que esto sea útil ...

rwinzhang
fuente
44
Para abrir la carpeta actual en Sublime Text 2, puede usar: subl .
2013
Para Sublime Text 3, use el nuevo subl.exe:Set-Alias subl 'c:\program files\sublime text 3\subl.exe'
wtjones
3

He enfrentado el mismo problema con el editor de git en Windows esta tarde, y finalmente lo tengo.

Deberá establecer la ruta del editor con la sintaxis bash y usar el formato DOS 8.3 para evitar espacios :

Esto no funciona (para mí):

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

Esto hacer:

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

Puede obtener el nombre de DOS 8.3 para un directorio con dir / x

Diego Buendia
fuente
1

Estaba luchando con esto por alguna razón, ninguno de los ejemplos anteriores me funcionó. Sin embargo, esta fue mi solución:

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

Necesitas específicamente ' 'todo el camino y $*al final de los argumentos, todo adentro " ".

justin.m.comprar
fuente
1

Si eres un usuario de Mac, así es como:

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

bueno, tuve algunos problemas para invocar notepad ++ desde gitbash incluso después de configurarlo como mi core.editor.

Lo resolví todo agregando la siguiente línea a mi archivo .bashrc en mi directorio de instalación de gitbash.

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

entonces, puedo invocar notepad ++ con el alias "npp". Creo que esto puede ayudarlo si cambia el directorio al editor respectivo que desea usar.

OLATOMIDA
fuente
1

Para los usuarios de MAC, puedo decir que para Sublime use lo siguiente:

Primero verifique el archivo .gitconfig usando el comando:

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

Ahora se puede agregar esta configuración:

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

Donde l1le dirá que comience en la línea 1.

bvmCoder
fuente
0

Para Windows 7, he encontrado que la siguiente solución funciona:

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

En Windows, si está instalando git, puede seleccionar otro editor y dar la siguiente línea de comando. C: \ Archivos de programa \ Sublime Text 3 \ sublime_text.exe -w Imagen del instalador

Xavier John
fuente
0

No he visto ninguna instancia de actualizaciones con respecto a Windows que permita que la instalación de Git elija activamente Sublime Text como su editor de texto predeterminado sin todos los códigos de anulación originales ... Texto sublime mostrado como opción en (re) instalación de Git

Angelfirenze
fuente
0

En MacOS (Mojave) a continuación me funciona para Sublime 3 :

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

Pratik Patel
fuente