Actualización 2010-2011:
zumalifeguard 's solución (upvoted) es más simple que el original, ya que no necesita más una concha derivador de scripts.
Como explico en " ¿Cómo puedo configurar un editor para que funcione con Git en Windows? ", Prefiero un contenedor, ya que es más fácil intentar cambiar de editor, o cambiar la ruta de un editor, sin tener que registrar dicho cambio Con un git config
nuevo .
Pero ese soy solo yo.
Información adicional : la siguiente solución funciona con Cygwin , mientras que la solución de zuamlifeguard no.
Respuesta original
El seguimiento:
C:\prog\git>git config --global core.editor C:/prog/git/npp.sh
C:/prog/git/npp.sh:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
funciona. Esos comandos se interpretan como script de shell, de ahí la idea de envolver cualquier conjunto de comandos de Windows en un sh
script.
(Como comenta Franky : "¡Recuerde guardar su archivo con finales de línea de estilo Unix o recibir misteriosos mensajes de error!").sh
Más detalles sobre la pregunta SO ¿ Cómo puedo configurar un editor para que funcione con Git en Windows?
Tenga en cuenta la -multiInst
opción ' ', para garantizar una nueva instancia de notepad ++ para cada llamada desde Git.
Tenga en cuenta también que, si está usando Git en Cygwin (y quiere usar Notepad ++ de Cygwin ), scphantm explica en " usar Notepad ++ para Git dentro de Cygwin " que debe tener en cuenta que:
git
está pasando un cygwin
camino y npp
no sabe qué hacer con él
Entonces el guión en ese caso sería:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"
Múltiples líneas para facilitar la lectura:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
-nosession -noPlugin "$(cygpath -w "$*")"
Con "$(cygpath -w "$*")"
ser la parte importante aquí.
Val comentó (y luego eliminó) que no debe usar la -notabbar
opción:
No sirve de nada deshabilitar la pestaña durante el rebase, pero hace mucho daño a la usabilidad general del Bloc de notas ya que se -notab
convierte en la configuración predeterminada y debe hacerlo Settings>Preferences>General>TabBar> Hide>uncheck
cada vez que inicie el bloc de notas después del rebase. Esto es el infierno. Me recomendó el infierno.
Entonces use más bien:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
Es decir:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
-noPlugin "$(cygpath -w "$*")"
Si desea colocar el script ' npp.sh
' en una ruta con espacios (como en ' c:\program files\...
',), tiene tres opciones:
Intente citar la ruta (comillas simples o dobles), como en:
git config --global core.editor 'C:/program files/git/npp.sh'
o pruebe la notación de nombre corto (no infalible ):
git config --global core.editor C:/progra~1/git/npp.sh
o (mi favorito) lugar ' npp.sh
' en una parte del directorio de su %PATH%
variable de entorno. No tendría que especificar ninguna ruta para el script.
git config --global core.editor npp.sh
Steiny informa en los comentarios que tienen que hacer:
git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'