Оновити вересень 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 р.) Та а64f213 (29 листопада 2017 р.) Від Ларса Шнайдера ( larsxschneider
) .
Допомагає: Хуніо С Хамано ( gitster
) .
(Об'єднано Хуніо С Хамано - 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.
Команди Bot запускають новий екземпляр блокнота ++ (звідси -multiInst
опція ') і чекають, коли цей екземпляр буде закритий перед продовженням.
Зауважте, що я використовую лише "/", а не \
". І я встановив msysgit, використовуючи варіант 2. (Додайте git\bin
каталог до PATH
змінної середовища, але без перекреслення деяких вбудованих інструментів Windows)
Той факт, що обгортка блокнота ++ називається .bat, не важливий.
Було б краще назвати його 'npp.sh' і помістити його в [git]\cmd
каталог, хоча (або в будь-який каталог, на який посилається ваша змінна середовища PATH).
Дивись також:
lightfire228 додає в коментарях :
Для тих, хто має проблему, коли N ++ просто відкриває порожній файл, а git не приймає повідомлення про фіксацію, див. " Скасування фіксації через порожнє повідомлення ": змініть свій файл .bat
або .sh
файл, щоб сказати:
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
Це підкаже блокнот ++ для відкриття файлу тимчасової фіксації, а не нового порожнього.