Я пробую Git на Windows . Я дошел до попытки "git commit" и получил эту ошибку:
Терминал тупой, но не определен ни визуальный, ни редактор. Пожалуйста, укажите сообщение, используя опцию -m или -F.
Итак, я понял, что мне нужна переменная окружения с именем EDITOR. Нет проблем. Я установил это, чтобы указать на Блокнот. Это сработало, почти. Сообщение о фиксации по умолчанию открывается в Блокноте. Но Блокнот не поддерживает прямые переводы строк. Я вышел и получил Notepad ++ , но я не могу понять, как настроить Notepad ++ %EDITOR%
таким образом, чтобы он работал с Git должным образом.
Я не женат на Notepad ++. На данный момент я не против того, какой редактор я использую. Я просто хочу иметь возможность вводить сообщения коммита в редакторе, а не в командной строке (с -m
).
Те из вас, кто использует Git в Windows: Какой инструмент вы используете для редактирования ваших сообщений коммитов, и что вам нужно было сделать, чтобы он работал?
Обновление сентябрь 2015 (6 лет спустя)
Последний выпуск мерзавца-для-Windows , (2.5.3) теперь включает в себя:
После настройки
git config core.editor notepad
пользователи теперь могут использоватьnotepad.exe
их в качестве редактора по умолчанию .
Конфигурацияgit config format.commitMessageColumns 72
будет подхвачена оберткой блокнота и обернута строкой сообщения о фиксации после того, как пользователь отредактирует его.
См совершить 69b301b по Johannes Schindelin ( dscho
) .
И Git 2.16 (Q1 2018) покажет сообщение, чтобы сообщить пользователю, что он ожидает, когда пользователь закончит редактирование при порождении редактора, в случае, если редактор открывается в скрытое окно или где-то в тени, и пользователь теряется.
Смотрите коммит abfb04d (07 декабря 2017 г.) и коммит a64f213 (29 ноября 2017 г.) от Lars Schneider ( larsxschneider
) .
При поддержке: Junio C Hamano ( gitster
) .
(Объединено Junio C Hamano - gitster
- в коммите 0c69a13 , 19 декабря 2017 г.)
launch_editor()
: указать, что Git ждет ввода пользователяКогда графическое
GIT_EDITOR
изображение порождается командой Git, которая открывается и ожидает ввода пользователя (например, "git rebase -i
"), окно редактора может быть скрыто другими окнами.
Пользователь может остаться уставленным на исходное окно терминала Git, даже не осознавая, что ему / ей нужно взаимодействовать с другим окном, прежде чем Git сможет продолжить работу. Для этого пользователя Git выглядит висящим.Распечатайте сообщение о том, что Git ждет ввода редактора в исходном терминале, и избавьтесь от него, когда редактор вернется, если терминал поддерживает удаление последней строки.
Оригинальный ответ
Я только что проверил это с git версии 1.6.2.msysgit.0.186.gf7512 и Notepad ++ 5.3.1
Я предпочитаю не устанавливать переменную EDITOR, поэтому я попытался:
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"
Это всегда дает:
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" %*'.
Если я определю npp.bat в том числе:
"c:\Program Files\Notepad++\notepad++.exe" %*
и я печатаю:
C:\prog\git>git config --global core.editor C:\prog\git\npp.bat
Он работает только из сеанса DOS, но не из оболочки git .
(не то, что с механизмом конфигурации core.editor, скрипт с " start /WAIT...
" в нем не будет работать, а только откроет новое окно DOS)
В ответе Беннетта упоминается возможность избежать добавления сценария, но непосредственно ссылаться на саму программу между простыми кавычками . Обратите внимание на направление косых черт! Используйте /
НЕ \
для разделения папок в имени пути!
git config --global core.editor \
"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Или, если вы находитесь в 64-битной системе:
git config --global core.editor \
"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Но я предпочитаю использовать скрипт (см. Ниже): таким образом я могу играть с разными путями или разными вариантами без необходимости повторной регистрации a git config
.
Реальное решение (со сценарием) состояло в том, чтобы понять, что:
то, на что вы ссылаетесь в файле конфигурации, на самом деле является /bin/sh
сценарием shell ( ) , а не сценарием DOS.
Так что же работает:
C:\prog\git>git config --global core.editor C:/prog/git/npp.bat
с C:/prog/git/npp.bat
:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
или
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
С этой настройкой я могу сделать ' git config --global --edit
' из DOS или Git Shell, или я могу сделать ' git rebase -i ...
' из DOS или Git Shell.
Команды бота вызовут новый экземпляр notepad ++ (отсюда и -multiInst
опция ') и будут ждать закрытия этого экземпляра, прежде чем продолжить.
Обратите внимание, что я использую только «/», а не \
«. И я установил msysgit, используя вариант 2. (Добавьте git\bin
каталог в PATH
переменную окружения, но не переопределяя некоторые встроенные инструменты Windows)
Тот факт, что обертка notepad ++ называется .bat, не важен.
Было бы лучше назвать его 'npp.sh' и поместить его в [git]\cmd
каталог (или в любой каталог, на который ссылается переменная среды PATH).
Смотрите также:
- Как просмотреть вывод 'git diff' с помощью программы diff? для общей теории
- Как мне настроить DiffMerge с помощью msysgit / gitk? для другого примера внешнего инструмента (DiffMerge и WinMerge)
lightfire228 добавляет в комментариях :
Если у вас возникла проблема, когда N ++ просто открывает пустой файл, а git не принимает ваше сообщение о коммите , см. « Отмена фиксации из-за пустого сообщения »: измените свой файл
.bat
или.sh
файл, чтобы сказать:
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
Это скажет notepad ++ открыть файл временного коммита, а не пустой новый.
git config
настройках. dir /X
эквивалент: " PROGRA~2
" для " Program Files (x86)
", что является хорошей привычкой, когда вы используете кроссплатформенные совместимые инструменты в Windows, что позволяет вам заполнять пробелы. Мне было трудно заставить Git сотрудничать с WordPad , Komodo Edit и почти любым другим редактором, который я им предоставляю. Большинство открыто для редактирования, но Git явно не ждет, когда произойдет сохранение / закрытие.
Как костыль, я просто делал то есть
git commit -m "Fixed the LoadAll method"
держать вещи в движении. Это приводит к тому, что мои коммит-сообщения становятся немного короче, чем они, вероятно, должны быть, но очевидно, что есть кое-что, что нужно сделать над версией Git для Windows.
GitGUI тоже не так уж и плох. Требуется немного ориентации, но после этого это работает довольно хорошо.
Notepad ++ работает просто отлично, хотя я предпочитаю использовать Notepad, -m или даже иногда встроенное «редактирование».
Проблема, с которой вы сталкиваетесь при использовании Notepad ++, связана с тем, как Git запускает исполняемый файл редактора. Мое решение состоит в том, чтобы установить переменную среды EDITOR
для пакетного файла, а не для фактического исполняемого файла редактора, который выполняет следующие действия:
start /WAIT "E:\PortableApps\Notepad++Portable\Notepad++Portable.exe" %*
/WAIT
приказывает сеансу командной строки прекратить работу до выхода из приложения, таким образом, вы сможете редактировать все, что душе угодно, пока Git с радостью ждет вас. % * передает все аргументы в пакетный файл через Notepad ++.
C:\src> echo %EDITOR%
C:\tools\runeditor.bat
Vim / gVim хорошо работает для меня.
>echo %EDITOR%
c:\Vim\Vim71\vim.exe
Похоже, что Git не найдет редактор, если в пути есть пробелы. Таким образом, вам придется поместить пакетный файл, упомянутый в ответе Патрика, в путь без пробелов.
Во всяком случае, я только что поиграл с этим и нашел следующее, чтобы работать хорошо для меня:
git config --global core.editor "'C:/Program Files/TextPad 5/TextPad.exe' -m"
Я не думаю, что CMD любит одинарные кавычки, поэтому вы должны использовать двойные кавычки «для указания аргумента встроенной строки пробела».
Cygwin (который я считаю основной платформой для Git's Bash), с другой стороны, любит и то, '
и другое "
; Вы можете указать CMD-подобные пути, используя /
вместо \
, если строка заключена в кавычки, т.е. в этом случае, используя одинарные кавычки.
В -m
переопределяет / указывает на использование нескольких редакторов , и нет никакой необходимости для %*
прикрепил на конце.
git config --global core.editor "'C:\Program Files\Sublime Text 3\sublime_text.exe' -m"
работает как шарм для меня. editor = notepad
У меня была та же проблема, и я нашел другое решение. Я получал
error: There was a problem with the editor 'ec'
У меня есть VISUAL=ec
, и пакетный файл вызвал ec.bat
на моем пути, который содержит одну строку:
c:\emacs\emacs-23.1\bin\emacsclient.exe %*
Это позволяет мне редактировать файлы из командной строки с помощью ec <filename>
, а VISUAL
установка означает, что большинство unixy-программ тоже подберут его. Похоже, что Git ищет путь иначе, чем другие мои команды - когда я смотрел git commit
в Process Monitor, я видел, что он просматривает каждую папку на пути для ec
и для ec.exe
, но не для ec.bat
. Я добавил еще одну переменную окружения ( GIT_EDITOR=ec.bat
), и все было хорошо.
Основываясь на ответе Даррена , чтобы использовать Notepad ++, вы можете просто сделать это (все в одной строке):
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Очевидно, эта C:/Program Files/Notepad++/notepad++.exe
часть должна быть путем к исполняемому файлу Notepad ++ в вашей системе. Например, это может быть C:/Program Files (x86)/Notepad++/notepad++.exe
.
Это работает как шарм для меня.
Я также использую Cygwin в Windows, но с gVim (в отличие от терминального Vim ).
Чтобы сделать эту работу, я сделал следующее:
- Создан однострочный пакетный файл (именованный
git_editor.bat
), который содержит следующее:"C:/Program Files/Vim/vim72/gvim.exe" --nofork "%*"
- Размещено
git_editor.bat
по моемуPATH
. - Установлен
GIT_EDITOR=git_editor.bat
После этого git commit
и т. Д. Правильно вызовет исполняемый файл gVim.
ПРИМЕЧАНИЕ 1. Параметр --nofork
gVim гарантирует, что он блокируется до тех пор, пока не будет написано сообщение о коммите.
ПРИМЕЧАНИЕ 2: Кавычки вокруг пути к gVim требуются, если в пути есть пробелы.
ПРИМЕЧАНИЕ 3: Кавычки вокруг "% *" необходимы на случай, если Git пропустит путь к файлу с пробелами.
У меня PortableGit 1.6 работал нормально, но после обновления до версии PortableGit 1.7 для Windows у меня были проблемы. Некоторые команды Git открывают Notepad ++. Exe нормально, но некоторые нет, особенно Git rebase ведет себя по-другому.
Проблема в том, что некоторые команды запускают процесс Windows cmd, а некоторые используют процесс Unix cmd. Я хочу дать атрибуты запуска редактору Notepad ++, поэтому мне нужно иметь собственный скрипт. Мое решение заключается в следующем.
Создайте скрипт для запуска соответствующего текстового редактора. Сценарий выглядит странно, но он обрабатывает как варианты Windows, так и Unix.
с: /PortableGit/cmd/git-editor.bat
#!/bin/sh # Open a new instance function doUnix() { "c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar $* exit } doUnix $* :WINCALL "c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar %*
Установите глобальную переменную core.editor
Сценарий был сохранен в папке git / cmd, поэтому он уже находится в пути к gitconsole. Это обязательно, так как полный путь может не работать должным образом.
git config --global core.editor "git-editor.bat"
Теперь я могу запустить мастер- команды git commit -a и git rebase -i . Попробуйте, если у вас есть проблемы с инструментом Git Windows.
Я предпочитаю использовать Emacs. Настройка может быть немного сложнее.
- Скачайте Emacs и распакуйте его где-нибудь вроде
c:\emacs
. - Беги
c:\emacs\bin\addpm.exe
. Вам нужно щелкнуть правой кнопкой мыши и «Запуск от имени администратора», если вы используете Windows Vista или выше. Это поместит исполняемые файлы на вашем пути. - Добавьте
(server-start)
где-нибудь в вашем.emacs
файле. Смотрите FAQ по Emacs для Windows, чтобы узнать, куда поместить ваш.emacs
файл. git config --global core.editor emacsclientw
Git теперь будет открывать файлы в рамках существующего процесса Emacs. Вам придется запустить этот существующий процесс вручную из c:\emacs\bin\runemacs.exe
.
Комп !
Я рад, что использую Vim, но так как я пытаюсь представить Git компании, я хотел чего-то такого, что у всех нас есть, и обнаружил, что WordPad, кажется, работает нормально (то есть Git действительно ждет, когда вы закончите редактирование и закроете окно).
git config core.editor '"C:\Program Files\Windows NT\Accessories\wordpad.exe"'
Это использует Git Bash на msysgit; Я не пробовал из командной строки Windows (если это имеет значение).
Это моя установка использовать Geany в качестве редактора для Git:
git config --global core.editor C:/path/to/geany.bat
со следующим содержанием в geany.bat
:
#!/bin/sh
"C:\Program Files\Geany\bin\Geany.exe" --new-instance "$*"
Он работает как в консоли DOS, так и в msysgit.
Изменить: После обновления до Vim 7.3, я пришел к выводу, что самый простой и простой способ сделать это:
Добавьте основную папку Vim в свой путь (щелкните правой кнопкой мыши Мой компьютер → Свойства → Дополнительно → Переменные среды )
Запустите это:
git config --global core.editor "gvim --nofork '%*'"
Если вы сделаете это таким образом, то я вполне уверен, что это будет работать и с Cygwin.
Оригинальный ответ:
Даже с парой ответов, связанных с Vim, у меня были проблемы с настройкой работы с gVim под Windows (без использования командного файла или% EDITOR% или Cygwin).
То, к чему я в итоге пришел, красиво и чисто, и основано на нескольких решениях здесь:
git config --global core.editor \
"'C:/Program Files/Vim/vim72/gvim.exe' --nofork '%*'"
Одна ошибка, которая заняла у меня некоторое время - это не обратная косая черта в стиле Windows. Это нормальные слеши.
Program Files(x86)
, то вам нужно явно изменить путь. Мне удалось заставить работать версию среды, установив переменную EDITOR с помощью кавычек и /
:
EDITOR="c:/Program Files (x86)/Notepad++/notepad++.exe"
Это один из симптомов больших проблем. Примечательно, что у вас что-то есть TERM=dumb
. Другие вещи, которые не работают должным образом, это less
команда, которая говорит, что у вас нет полностью функционального терминала.
Похоже, что это чаще всего вызвано тем, что в глобальных переменных среды Windows установлено значение TERM. Для меня проблема возникла, когда я установил Strawberry Perl, некоторая информация об этом находится в ошибке msysgit для этой проблемы, а также о нескольких решениях.
Первое решение - это исправить это в вашем ~ / .bashrc, добавив:
export TERM=msys
Вы можете сделать это из командной строки Git Bash следующим образом:
echo "export TERM=msys" >> ~/.bashrc
Другое решение, которое я и сделал, потому что меня не волнуют причины, по которым Strawberry Perl добавил TERM=dumb
свои настройки среды, - это удалить и удалить, TERM=dumb
как указано в этом комментарии к сообщению об ошибке msysgit .
Панель управления / Система / Дополнительно / Переменные среды ... (или аналогичные, в зависимости от вашей версии Windows) - это то место, где в Windows задаются переменные среды. По умолчанию TERM не установлен. Если там установлен TERM, то вы (или одна из установленных вами программ - например, Strawberry Perl) установили его. Удалите этот параметр, и все будет в порядке.
Точно так же, если вы используете Strawberry Perl и заботитесь о клиенте CPAN или о чем-то подобном, вы можете оставить его TERM=dumb
и использовать unset TERM
в файле ~ / .bashrc, который будет иметь эффект, аналогичный приведенному выше.
Конечно, все остальные решения верны в том смысле, что вы можете использовать git config --global core.editor $MYFAVORITEEDITOR
их, чтобы убедиться, что Git использует ваш любимый редактор, когда ему нужно запустить его для вас.
При использовании удаленно смонтированного домашнего диска ( общий ресурс Samba , NFS и т. Д.) Ваша ~/.git
папка является общей для всех систем, что может привести к нескольким проблемам. Поэтому я предпочитаю скрипт для определения правильного редактора для правильной системы:
#!/usr/bin/perl
# Detect which system I'm on and choose the right editor
$unamea = `uname -a`;
if($unamea =~ /mingw/i){
if($unamea =~ /devsystem/i){#Check hostname
exec('C:\Program Files (x86)\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
}
if($unamea =~ /testsystem/i){
exec('C:\Program Files\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
}
}
$MCEDIT=`which mcedit`;
if($MCEDIT =~ /mcedit/){
exec($MCEDIT, @ARGV);
}
$NANO=`which nano`;
if($NANO =~ /nano/){
exec($NANO, @ARGV);
}
die "You don't have a suitable editor!\n";
Можно было бы рассмотреть простой сценарий оболочки, но я использовал Perl, так как он поставляется с msysgit, и ваши Unix-подобные системы обычно также предоставляют его. Помещаем скрипт в /home/username/bin
который нужно добавить PATH
в .bashrc
или .profile
. После добавления у git config --global core.editor giteditor.pl
вас есть правильный редактор, где бы вы ни находились.
Благодаря сообществу Stack Overflow ... и небольшому исследованию я смог заставить моего любимого редактора EditPad Pro работать в качестве редактора ядра с msysgit 1.7.5.GIT и TortoiseGit v1.7.3.0 поверх Windows XP SP3. ..
Следуя приведенному выше совету, я добавил путь к скрипту Bash для редактора кода ...
git config --global core.editor c:/msysgit/cmd/epp.sh
Тем не менее, после нескольких неудачных попыток вышеупомянутых решений ... я, наконец, смог заставить это работать. Согласно документации EditPad Pro, добавление флага / newinstance позволит оболочке ждать ввода от редактора ...
Флаг ' / newinstance ' был ключевым в моем случае ...
#!/bin/sh
"C:/Program Files/JGsoft/EditPadPro6/EditPadPro.exe" //newinstance "$*"
/newinstance
имели ровно одну косую черту. Это вполне нормально для приложений Windows. Если вы вызываете EditPad из оболочки UNIX, вам нужно будет использовать любой механизм, предлагаемый вашей оболочкой, чтобы избежать прямого слеша, чтобы он не рассматривал переключатель как абсолютный путь и передавал один буквенный слеш в командную строку EditPad. /wait
переключатель в командной строке EditPad. Вы можете использовать /wait
с или без, /newinstance
чтобы контролировать, нужно ли открывать новое окно EditPad или использовать существующее окно повторно. Процесс, запущенный вашим сценарием, будет ожидать закрытия файла независимо от того, было ли окно создано или повторно использовано. EditPad Pro 6 и более ранние версии не поддерживают /wait
. /wait
подсказку, сэр ... :)[core]
раздела .gitconfig для включения строки editor = "'C:/Program Files/Just Great Software/EditPad Lite 7/EditPadLite7.exe' //wait //newinstance"
. Я просто использую TortoiseGit прямо из коробки. Он прекрасно интегрируется с моими открытыми ключами PuTTY .
Он имеет идеальный редактор для фиксации сообщений.
Это работает для меня, используя Cygwin и TextPad 6 (РЕДАКТИРОВАТЬ: он также работает с TextPad 5, пока вы вносите очевидные изменения в сценарий), и предположительно модель может быть использована и для других редакторов:
Файл ~/.gitconfig
:
[core]
editor = ~/script/textpad.sh
Файл ~/script/textpad.sh
:
#!/bin/bash
APP_PATH=`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`
FILE_PATH=`cygpath -w $1`
"$APP_PATH" -m "$FILE_PATH"
Этот однострочный также работает:
Файл ~/script/textpad.sh
(вариант 2):
"`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`" -m "`cygpath -w $1`"
Я использую Git на нескольких платформах, и мне нравится использовать одинаковые настройки Git на всех них. (На самом деле, все мои конфигурационные файлы находятся под контролем выпуска с помощью Git, и я поставил клон репозитория Git на каждую машину.) Решение, которое я придумал, заключается в следующем:
Я установил мой редактор на giteditor
git config --global core.editor giteditor
Затем я создаю символическую ссылку под названием giteditor, которая находится в моем PATH . (У меня есть личный каталог bin , но в любом месте в PATH работает.) Эта ссылка указывает на мой текущий выбор редактора. На разных машинах и разных платформах я использую разные редакторы, так что это означает, что мне не нужно менять свою универсальную конфигурацию Git ( .gitconfig ), только ссылку, на которую указывает giteditor .
Символические ссылки обрабатываются каждой операционной системой, о которой я знаю, хотя они могут использовать разные команды. Для Linux вы используете ln -s . Для Windows вы используете встроенный в mklink cmd . У них разные синтаксисы (которые вы должны искать), но на самом деле все работает одинаково.
error: cannot spawn giteditor: No such file or directory
Это сработало для меня:
- Добавьте каталог, содержащий исполняемый файл редактора, в переменную PATH . (Например, "C: \ Program Files \ Sublime Text 3 \" )
- Перезагрузите компьютер.
- Измените глобальную переменную Git core.editor на имя исполняемого файла редактора без расширения «.exe» (например, git config --global core.editor sublime_text)
Это оно!
ПРИМЕЧАНИЕ. Sublime Text 3 - это редактор, который я использовал для этого примера.
Я использую GitHub для Windows, который является хорошим визуальным вариантом. Но я также предпочитаю командную строку, поэтому, чтобы она работала при открытии репозитория в оболочке Git, я просто установил следующее:
git config --global core.editor vim
который отлично работает
Это работает для PowerShell и cmder 1.2 (при использовании с PowerShell). В файле ~/.gitconfig
:
[core]
editor = 'c:/program files/sublime text 3/subl.exe' -w
Как я могу сделать Sublime Text редактором по умолчанию для Git?
Я нашел красиво простое решение опубликовано здесь - хотя может быть ошибка в пути, по которому вы должны скопировать файл subl, указанный автором.
Я использую Windows 7 x64, и мне пришлось поместить файл «subl» в мой /Git/cmd/
папку, чтобы он работал.
Это работает как шарм, хотя.
По предложению VonC , это сработало для меня (сводило меня с ума):
git config --global core.editor "'C:/Program Files (x86)/Sublime Text 3/subl.exe' -wait"
Пропуск -wait
может вызвать проблемы, особенно если вы работаете с Gerrit и меняете идентификаторы, которые необходимо вручную скопировать в конец вашего сообщения о коммите.
Атом и Windows 10
- Я щелкнул правой кнопкой мыши значок Atom на рабочем столе и нажал на свойства.
- Скопировал путь местоположения «Начать в»
- Посмотрел там с Windows Explorer и нашел "atom.exe".
Я набрал это в Git Bash:
git config --global core.editor C:/Users/YOURNAMEUSER/AppData/Local/atom/app-1.7.4/atom.exe"
Примечание: я изменил все \
для /
. Я создал .bashrc в своем домашнем каталоге и использовал его /
для установки домашнего каталога, и он работал, поэтому я предположил, что /
это будет путь.
Для Атома можно сделать
git config --global core.editor "atom --wait"
и подобное для кода Visual Studio
git config --global core.editor "code --wait"
который откроет окно кода Atom или Visual Studio для фиксации,
или для возвышенного текста :
git config --global core.editor "subl -n -w"
Вот решение с 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'
РЕДАКТОР позволяет скрипту работать с Git
GIT_EDITOR позволяет скрипту работать с командами Hub
git config core.editor notepad
теперь достаточно. Смотрите мой обновленный ответ ниже .