Actualización de septiembre de 2015 (6 años después)
La última versión de git-for-Windows (2.5.3) ahora incluye:
Al configurar git config core.editor notepad
, los usuarios ahora pueden usarlo notepad.exe
como su editor predeterminado .
La configuración git config format.commitMessageColumns 72
será recogida por el contenedor del bloc de notas y envolverá el mensaje de confirmación una vez que el usuario lo edite.
Ver commit 69b301b por Johannes Schindelin ( dscho
) .
Y Git 2.16 (Q1 2018) mostrará un mensaje para decirle al usuario que está esperando que el usuario termine de editar al generar un editor, en caso de que el editor se abra en una ventana oculta o en algún lugar oscuro y el usuario se pierda.
Ver commit abfb04d (07 de diciembre de 2017) y commit a64f213 (29 de noviembre de 2017) por Lars Schneider ( larsxschneider
) .
Ayudado por: Junio C Hamano ( gitster
) .
(Fusionada por Junio C Hamano - gitster
- en commit 0c69a13 , 19 dic 2017)
launch_editor()
: indica que Git espera la entrada del usuario
Cuando GIT_EDITOR
se genera un gráfico mediante un comando Git que se abre y espera la entrada del usuario (por ejemplo, " git rebase -i
"), la ventana del editor puede quedar oculta por otras ventanas.
Es posible que el usuario se quede mirando la ventana del terminal Git original sin siquiera darse cuenta de que necesita interactuar con otra ventana antes de que Git pueda continuar. Para este usuario, Git aparece colgado.
Imprima un mensaje de que Git está esperando la entrada del editor en el terminal original y deséchelo cuando regrese el editor, si el terminal admite borrar la última línea
Respuesta original
Lo acabo de probar con git versión 1.6.2.msysgit.0.186.gf7512 y Notepad ++ 5.3.1
Prefiero no tener que establecer una variable EDITOR, así que intenté:
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"
Eso siempre da:
C:\prog\git>git config --global --edit
"c:\Program Files\Notepad++\notepad++.exe" %*: c:\Program Files\Notepad++\notepad++.exe: command not found
error: There was a problem with the editor '"c:\Program Files\Notepad++\notepad++.exe" %*'.
Si defino un npp.bat que incluye:
"c:\Program Files\Notepad++\notepad++.exe" %*
y escribo:
C:\prog\git>git config --global core.editor C:\prog\git\npp.bat
Simplemente funciona desde la sesión de DOS, pero no desde el shell git .
(no es que con el mecanismo de configuración core.editor, una secuencia de comandos con " start /WAIT...
" no funcione, sino que solo abra una nueva ventana de DOS)
La respuesta de Bennett menciona la posibilidad de evitar agregar un script, pero hacer referencia directa al programa en sí entre comillas simples . Tenga en cuenta la dirección de las barras! ¡Use /
NO \
para separar carpetas en el nombre de la ruta!
git config --global core.editor \
"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
O si está en un sistema de 64 bits:
git config --global core.editor \
"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Pero prefiero usar un script (ver más abajo): de esa manera puedo jugar con diferentes rutas o diferentes opciones sin tener que registrarme nuevamente a git config
.
La solución real (con un script) fue darse cuenta de que: a
lo que se refiere en el archivo de configuración es en realidad un /bin/sh
script de shell ( ) , no un script de DOS.
Entonces, lo que funciona es:
C:\prog\git>git config --global core.editor C:/prog/git/npp.bat
con C:/prog/git/npp.bat
:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
o
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
Con esa configuración, puedo hacer ' git config --global --edit
' desde DOS o Git Shell, o puedo hacer ' git rebase -i ...
' desde DOS o Git Shell.
Los comandos de Bot activarán una nueva instancia de notepad ++ (de ahí el-multiInst
opción ') y esperarán a que se cierre esa instancia antes de continuar.
Tenga en cuenta que solo uso '/', no \
'. E instalé msysgit usando la opción 2. (Agregue el git\bin
directorio a la PATH
variable de entorno, pero sin anular algunas herramientas integradas de Windows)
El hecho de que el contenedor notepad ++ se llame .bat no es importante.
Sin embargo, sería mejor nombrarlo 'npp.sh' y ponerlo en el [git]\cmd
directorio (o en cualquier directorio al que haga referencia la variable de entorno PATH).
Ver también:
lightfire228 agrega en los comentarios :
Para cualquier persona que tenga un problema en el que N ++ simplemente abra un archivo en blanco y git no tome su mensaje de confirmación, consulte " Cancelación de la confirmación debido a un mensaje vacío ": cambie su archivo .bat
o .sh
para decir:
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
Eso le indicará a notepad ++ que abra el archivo de confirmación temporal, en lugar de uno nuevo en blanco.