Как использовать Notepad ++ (или другое) с помощью msysgit?

Как использовать Notepad ++ (или любой другой редактор помимо vim) с помощью msysgit?

Я пробовал все следующие безрезультатно:

git config --global core.editor C:\Program Files\Notepad++\notepad++.exe

git config --global core.editor "C:\Program Files\Notepad++\notepad++.exe"

git config --global core.editor C:/Program Files/Notepad++/notepad++.exe

git config --global core.editor C:\\Program Files\\Notepad++\\notepad++.exe

Ответ 1

Обновление 2010-2011:

zumalifeguard решение (upvoted) проще первоначального, так как оно не требуется больше оболочки оболочки script.

Как я объясняю в Как настроить редактор для работы с 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 "$*"

действительно работает. Эти команды интерпретируются как shell script, поэтому идея обернуть любой набор команд Windows в sh script.
(Как Franky комментарии: "Не забудьте сохранить ваш файл .sh в конце строки стиля Unix или получать таинственные сообщения об ошибках!" )

Подробнее о вопросе SO Как настроить редактор для работы с Git в Windows?

Обратите внимание на параметр "-multiInst" для обеспечения нового экземпляра блокнота ++ для каждого вызова из Git.

Обратите внимание, что если вы используете Git в Cygwin (и хотите использовать Notepad ++ из Cygwin), тогда scphantm объясняет в с помощью Notepad ++ для Git внутри Cygwin", что вы должны знать, что:

git передает ему путь cygwin, а npp не знает, что с ним делать

Итак, script в этом случае будет:

#!/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:

Не полезно отключать вкладку во время rebase, но приносит большой вред общей утилите Notepad, поскольку -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 "$*")"

Если вы хотите поместить script '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%. Тогда вам не нужно было указывать какой-либо путь для script.

    git config --global core.editor npp.sh
    
  • Steiny сообщает в комментариях:

    git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'
    

Ответ 2

git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Или, для 64-битной Windows и 32-разрядной установки Notepad ++:

git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Кроме того, в командной строке можно либо ввести либо 32-разрядную, либо 64-разрядную Windows. Он вытащит место из блокнота ++. Exe из реестра и настроит git, чтобы использовать его автоматически:

FOR /F "usebackq tokens=2*" %A IN (`REG QUERY "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\notepad++.exe" /ve`) DO git config --global core.editor "'%B' -multiInst -notabbar -nosession -noPlugin"

Если вы хотите поместить вышеуказанное из файла .BAT или .CMD, вы должны заменить% A на %% A и% B с %% B

Ответ 3

Это работает для меня

git config --global core.editor C:/Progra~1/Notepad++/notepad++.exe

Ответ 4

git config core.editor "\"C:\Program Files (x86)\Notepad++\notepad++.exe\""

Ответ 6

Я использую этот подход с переменной PATH. Путь к Notepad ++ добавляется к переменной PATH системы, а затем core.editor устанавливается следующим образом:

git config --global core.editor notepad++

Кроме того, вы можете добавить некоторые дополнительные параметры для Notepad ++:

git config --global core.editor "notepad++.exe -multiInst"

(как я подробно рассказал в Git core.editor для Windows")

И здесь вы можете найти некоторые параметры, которые вы можете использовать, указав Notepad ++ Параметры командной строки.

Ответ 7

UPDATE 2015

Если вы распакуете/установите Notepad ++ в c:\utils\npp\ и переименуете notepad ++. exe в npp.exe для простоты, тогда вам нужно всего лишь

git config --global core.editor c:/utils/npp/npp.exe

Нет сценариев-оболочек или других обманов. Нет необходимости иметь Notepad ++ в PATH.

Ответ 8

Я использую Windows 10 и notepad++, и я получаю это сообщение об ошибке:

line 0: syntax error near unexpected token '(' git windows

Поэтому я делаю настройку следующим образом:

git config --global core.editor 'C:/Program\ Files\ \(x86\)/Notepad++/notepad++.exe'

и это работает

Ответ 9

Вот решение с Cygwin:

#!/bin/dash -e
if [ "$1" ]
then k=$(cygpath -w "$1")
elif [ "$#" != 0 ]
then k=
fi
Notepad2 ${k+"$k"}
  • Если нет пути, не пропустите путь

  • Если путь пуст, пропустите пустой путь

  • Если путь не пуст, перейдите в формат Windows.

Затем я устанавливаю эти переменные:

export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'

Источник

Ответ 10

Следуйте этим инструкциям,

  • Сначала убедитесь, что в вашей системе установлено notepad ++ и что программа по умолчанию открывает файлы .txt.

  • Затем установите gitpad в вашей системе. Обратите внимание на последнее, что я проверил, ссылка для загрузки была сломана, поэтому загрузите ее из здесь в качестве объяснил.

Затем при совершении вы увидите, как появляется ваш любимый текстовый редактор.

Ответ 11

Я использовал решение стаников. Я начал с окна bash и дал команды

cd ~
touch .bashrc

Затем я нашел файл .bashrc в проводнике Windows, открыл его с помощью блокнота ++ и добавил

PATH=$PATH:"C:\Program Files (x86)\Notepad++"

чтобы bash знал, где найти Notepad ++. (Наличие Notepad ++ в bash PATH - полезная вещь сама по себе!) Затем я вставил свою линию

git config --global core.editor "notepad++.exe -multiInst"

в окно bash. Я начал новое окно bash для репозитория git для проверки вещей с помощью команды

git rebase -i HEAD~10

и файл, открытый в Notepad ++, как можно надеяться.