Обновление 2010-2011:
zumalifeguard «s решение (upvoted) проще , чем исходный, так как ему не нужно больше оболочек обертки сценария.
Как я объясняю в « Как я могу настроить редактор для работы с 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 "$*"
работает. Эти команды интерпретируются как сценарий оболочки, поэтому идея заключить в sh
сценарий любой набор команд Windows .
(Как говорит Фрэнки : «Не забудьте сохранить свой файл с окончаниями строк в стиле Unix или получать таинственные сообщения об ошибках!»).sh
Подробнее о SO вопросе Как настроить редактор для работы с Git в Windows?
Обратите внимание на -multiInst
опцию ' ', чтобы обеспечить новый экземпляр notepad ++ для каждого вызова из Git.
Также обратите внимание, что если вы используете Git на Cygwin (и хотите использовать Notepad ++ от Cygwin ), то в « использовании Notepad ++ для Git внутри Cygwin » scphantm объясняет, что вы должны знать, что:
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 "$*")"
является важной частью здесь.
Вал прокомментировал (а затем удалил), что вы не должны использовать -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"'