Обновление 2010-2011:
zumalifeguard решение (с голосом выше) проще, чем оригинальное, так как ему больше не требуется скрипт оболочки.
Как я объясняю в " Как я могу настроить редактор для работы с Git в Windows? ", Я предпочитаю оболочку, так как ее легче пробовать и переключать редакторы, либо менять путь одного редактора, без необходимости регистрировать указанное изменение с помощью git config
снова .
Но это только я.
Дополнительная информация : следующее решение работает с Cygwin , а решение zuamlifeguard - нет.
Оригинальный ответ.
следующее:
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 "$*"
работает. Эти команды интерпретируются как сценарий оболочки, поэтому идея обернуть любой набор команд Windows в сценарий sh
.
(Как комментарии Фрэнки : "Не забудьте сохранить файл .sh
с окончаниями строк в стиле Unix или получать таинственные сообщения об ошибках!")
Подробнее о SO вопросе Как настроить редактор для работы с Git в Windows?
Обратите внимание на опцию '-multiInst
' для обеспечения нового экземпляра notepad ++ для каждого вызова из Git.
Также обратите внимание, что если вы используете Git на Cygwin (и хотите использовать Notepad ++ от Cygwin ), то scphantm объясняется в " используя Notepad ++ для Git внутри Cygwin", что вы должны знать, что:
git
передает ему cygwin
путь и npp
не знает, что с ним делать
Таким образом, сценарий в этом случае будет:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"
Несколько строк для удобства чтения:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
-nosession -noPlugin "$(cygpath -w "$*")"
Здесь "$(cygpath -w "$*")"
является важной частью.
Val прокомментировал (и затем удалил), что вы не должны использовать -notabbar
параметр:
Бесполезно отключать вкладку во время перебазирования, но наносит большой вред общему удобству использования Блокнота, поскольку -notab
становится настройкой по умолчанию, и вы должны Settings>Preferences>General>TabBar> Hide>uncheck
каждый раз, когда запускаете блокнот после перебазировки. Это ад Вы рекомендовали, черт возьми.
Так что используйте скорее:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
То есть:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
-noPlugin "$(cygpath -w "$*")"
Если вы хотите поместить скрипт 'npp.sh
' в путь с пробелами (как в
'c:\program files\...
',), у вас есть три варианта:
Либо попробуйте указать путь (одинарные или двойные кавычки), например:
git config --global core.editor 'C:/program files/git/npp.sh'
или попробуйте сокращенное обозначение (без защиты от дурака):
git config --global core.editor C:/progra~1/git/npp.sh
или (мое любимое) место 'npp.sh
' в директории вашей переменной окружения %PATH%
. Тогда вам не нужно было бы указывать какой-либо путь для скрипта.
git config --global core.editor npp.sh
Steiny сообщает в комментариях что нужно сделать:
git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'