Як я можу використовувати Notepad ++ (або інше) з msysgit?


210

Як я можу використовувати 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
Будь-які повідомлення про помилки? Ви спробували встановити змінну середовища EDITOR?
csl

4
Спробуйте подивитися тут: stackoverflow.com/questions/10564 / ...
JasonTrue

Просто додали інформацію про шлях сценарію, включаючи пробіли, за потребою.
VonC

Відповіді:


76

Оновлення 2010-2011:

zumalifeguard «s рішення (upvoted) простіше , ніж вихідний, так як йому не потрібно більше оболонок обгортки сценарію.

Як я пояснюю в " Як я можу налаштувати редактор для роботи з Git в Windows? ", Я віддаю перевагу обгортці, оскільки легше спробувати переключити редактори або змінити шлях одного редактора, не реєструючи зазначену зміну з git configAgain .
Але це тільки я.


Додаткова інформація : наступне рішення працює із 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сценарій.
(Як зауважує Френкі : "Не забудьте зберегти свій файл із закінченнями рядків у стилі Unix або отримати таємничі повідомлення про помилки!").sh

Детальніше про питання ТА Як я можу налаштувати редактор для роботи з Git в Windows?

Зверніть увагу на -multiInstопцію ' ', щоб забезпечити новий екземпляр блокнота ++ для кожного дзвінка від Git.

Зауважте також, що якщо ви використовуєте Git на Cygwin (і хочете використовувати Блокнот ++ від Cygwin ), тоді scphantm пояснює в " використанні Блокнота ++ для 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 "$*")"є важливою частиною тут.

Вал прокоментував (а потім видалив), що не слід використовувати -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"'

Я змусив це працювати, помістивши npp.sh у корінь мого диска (тобто - C: /npp.sh). Кожен раз, коли я намагаюся націлити папку з пробілами (тобто - D: / Program Files (x86) /Git/npp.sh), вона не вдається, який правильний спосіб уникнути пробілів та / або змусити це працювати?
ФЛАК

ставити цитати навколо нього. Подивіться, як у його прикладі є цитати навколо всієї речі?
Фред

2
Відповідь zumalifeguard працював на мене. Для цього не потрібна обгортка сценарію оболонки.
wbinford

1
@wbinford: Я додав посилання на відповідь zumalifeguard (яку я підтримав), а також причину, чому я вважаю за краще зареєструвати обгортку, а не пряму команду.
VonC

1
Я спробував кілька комбінацій вищезазначеного, і жодна робота з git. у мене є мій скрипт npp на моєму шляху, і якщо з консолі cygwin я набираю, "npp {файл}" npp відкриває файл просто чудово, але коли я роблю "git rebase -i", npp відкриється із порожнім файлом замість файл злиття. будь-які ідеї, чому це станеться?
scphantm

433
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


9
працює і в розширеннях git. зауважте, що для 64-бітових вікон запис"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin
Тім Абел

15
Дурне в тому, що -notabbar назавжди відключить панель вкладок, а не лише для цього сеансу. Після запуску в блокнот ++ звичайно вам доведеться зайти в діалогове вікно налаштувань і знову включити панель вкладок.
Оскар Берггрен

4
Мені довелося користуватися: git config --global core.editor "c\:/Program\ Files\ \(x86\)/Notepad++/notepad++.exe -multiInst -nosession -noPlugin" ... не впевнений, чому.
David Faivre

1
У мене Windows 7 64-розрядні, msysgit v1.9.2 та Notepad ++ v6.6.9, і це спрацювало ПЕРЕФЕКТНО . Дякую.
Раду Мурзеа

2
@CoDEmanX Без -multiInstнього, швидше за все, просто подасть сигнал вже запущеному Блокноту ++, щоб він відкрив файл, а потім негайно вийшов. Це може бути великою проблемою, якщо незалежно від виклику редактор очікує, що він повернеться лише після редагування (тобто синхронної операції, як це відбувається при виклику vi). git rebase -iНаприклад, спробуйте інтерактивну базу даних ( ). Якщо це все-таки працює, як очікувалося, то ви все добре.
blubberdiblub

7

Це працює для мене

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

Я робив те ж саме .. тепер, як відкрити блокнот ++, щоб зробити повідомлення з повідомленням ?? що це кому? будь ласка, можете навести приклад
shridutt kothari

4
Додавання цього -multiInstваріанту є вирішальним, як і в інших відповідях.
blubberdiblub

1
Це не добре з двох причин. По-перше, якщо C: об'єм NTFS з вимкненою опцією імені файлу 8.3, його взагалі немає C:\Progra~1. По-друге, може бути кілька C:\Progra*каталогів, тому ~1суфікс не обов'язково є дійсним.
ккм

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

Це зробив для мене трюк! Після цього .gitconfig виглядає так: [core] editor = \ "c: \\ Program Files (x86) \\ Notepad ++ \\ notepad ++. Exe \" -multiInst -nosession -noPlugin
AtliB

Дивіться найвищу відповідь, що включає цю інформацію (я не читав досить далеко)
AtliB


3

Я використовую підхід зі змінною 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 ++ .


1

ОНОВЛЕННЯ 2015 року

Якщо ви розпакуйте / встановіть Блокнот ++ у c:\utils\npp\та перейменуєте блокнот ++. Exe в npp.exe для простоти, тоді все, що вам потрібно зробити, - це

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

Немає скриптів для обгортки чи інших хитрощів. Не потрібно мати Notepad ++ у PATH.


Оновлення 2020: здається, що ви пропустили варіанти відкрити новий екземпляр блокнота. Я використовував з cmd.exe, git config --global core.editor "c:\\soft\\notepad++\\notepad++.exe -multiInst -notabbar -nosession -noPlugin"і він працює від обох cmd terminalтаgit bash
oleksa

1

Я використовую Windows 10 та блокнот ++, і мені надходило повідомлення про помилку:

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

Тож я роблю налаштування таким чином:

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

і це працює


0

Дотримуйтесь цих інструкцій,

  1. Спочатку переконайтеся, що у вашій системі встановлений блокнот ++ і що програма за замовчуванням відкриває файли .txt.

  2. Потім встановіть gitpad у вашій системі. Зверніть увагу, що останній я перевірив, що посилання на завантаження було порушено, тому завантажте його звідси, як пояснено .

Тоді, виконуючи обов'язки, вам слід побачити улюблений текстовий редактор, що спливе.


0

Я використовував рішення стариків. Я почав з вікна bash і дав команди

cd ~
touch .bashrc

Тоді я знайшов .bashrc файл у Windows Explorer, відкрив його з блокнотом ++ та додав

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

так що bash знає, де знайти Notepad ++. (Маючи Notepad ++ у bash PATH - корисна річ сама по собі!) Потім я вставив його рядок

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

у вікно баш. Я запустив нове вікно bash для сховища git для перевірки речей за допомогою команди

git rebase -i HEAD~10

і файл відкрився в Блокноті ++ так, як сподівався.


0

Ось рішення із Cygwin:

#!/bin/dash -e
if [ "$1" ]
then k=$(cygpath -w "$1")
elif [ "$#" != 0 ]
then k=
fi
Notepad2 ${k+"$k"}
  1. Якщо шляху немає, не проходьте шляху

  2. Якщо шлях порожній, пройдіть порожній шлях

  3. Якщо шлях не порожній, перетворіть його у формат Windows.

Тоді я встановлюю ці змінні:

export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'
  1. EDITOR дозволяє сценарію працювати з Git

  2. GIT_EDITOR дозволяє сценарію працювати з командами Hub

Джерело

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.