Jak skonfigurować edytor do pracy z Gitem w systemie Windows?

Próbuję Git na Windows . Doszedłem do punktu, w którym próbowałem "git commit" i dostałem ten błąd:

Terminal jest głupi, ale nie wizualny ani Edytor zdefiniowany. Proszę podać wiadomość za pomocą opcji-m lub-F.

Więc doszedłem do wniosku, że muszę mieć zmienną środowiskową o nazwie EDITOR. Nie ma sprawy. Ustawiłem go na Notatnik. Prawie zadziałało. Domyślna wiadomość zatwierdzająca zostanie otwarta w Notatniku. Ale Notatnik nie obsługuje nagich kanałów. Wyszedłem i dostałem Notepad++, Ale Nie wiem, jak skonfigurować Notepad++ jako %EDITOR% w taki sposób, aby działał z Gitem zgodnie z oczekiwaniami.

Nie jestem żonaty z Notepad++. W tym momencie nie mam nic przeciwko temu, jakiego edytora używam. Po prostu chcę być w stanie wpisywać commity w edytorze , a nie w wierszu poleceń (z -m).

Ci z Was, którzy używają Gita w systemie Windows: jakiego narzędzia używacie do edycji swoich commitów i co musicie zrobić, aby to działało?

Author: Steven Penny, 2008-08-14

30 answers

Aktualizacja Wrzesień 2015 (6 lat później)

Ostatnie wydanie git-for-Windows (2.5.3) zawiera teraz:

Konfigurując git config core.editor notepad, użytkownicy mogą teraz używać notepad.exe jako domyślnego edytora.
Konfigurowanie git config format.commitMessageColumns 72 zostanie odebrane przez owijarkę notatnika i zawinięte w linię po edycji przez użytkownika.

Zobacz commit 69b301b by Johannes Schindelin (dscho).

I Git 2.16 (Q1 2018) wyświetli komunikat informujący użytkownika, że czeka on na zakończenie edycji podczas spawania edytora, na wypadek, gdyby edytor otwiera się w ukrytym oknie lub w jakimś niejasnym miejscu, a użytkownik otrzymuje zagubieni.

[[35]} Zobacz Zatwierdź abfb04d (07 Dec 2017) i Zatwierdź a64f213 (29 Nov 2017) przez Lars Schneider (larsxschneider).
Help-by: Junio C Hamano (gitster).
(dodany przez Junio C Hamano -- gitster -- in commit 0c69a13 , 19 gru 2017)

launch_editor(): wskazuje, że Git czeka na wejście użytkownika

Gdy graficzny {[18] } jest wywoływany przez polecenie Git, które otwiera i czeka na wejście użytkownika (np. " git rebase -i"), następnie okno edytora mogą być zasłonięte przez inne okna.
Użytkownik może pozostać wpatrzony w oryginalne okno terminala Git nawet nie zdając sobie sprawy, że potrzebuje aby wejść w interakcję z innym oknem, zanim Git będzie mógł kontynuować. Do tego użytkownika Git pojawia się wisi.

Wypisuje komunikat, że Git czeka na wejście edytora w oryginale terminal i pozbyć się go po powrocie edytora, jeśli terminal obsługuje kasowanie ostatniej linii


Oryginalna odpowiedź

Właśnie Przetestowałem go z wersją git 1.6.2.msysgit.0.186. gf7512 i Notepad++5.3.1

Wolę a nie ustawiać zmienną edytora, więc próbowałem:

git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"

To zawsze daje:

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" %*'.

Jeśli zdefiniuję npp.bat zawierający:

"c:\Program Files\Notepad++\notepad++.exe" %*

I wpisuję:

C:\prog\git>git config --global core.editor C:\prog\git\npp.bat

Po prostu działa z sesji DOS, ale nie z powłoki git .
(nie to z rdzeniem.skrypt z "start /WAIT..." w nim nie dziaĹ ' a, a jedynie otworzy nowe okno DOS)


Odpowiedź Bennetta wspomina o możliwości unikania dodawania skryptu, ale odwoływania się bezpośrednio do samego programu pomiędzy prostymi cudzysłowami . Zwróć uwagę na kierunek cięcie! Użyj /, a nie \, aby oddzielić foldery w nazwie ścieżki!

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

Lub jeśli jesteś w systemie 64-bitowym:

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

Ale wolę używać skryptu (patrz niżej): w ten sposób mogę grać różnymi ścieżkami lub różnymi opcjami bez konieczności ponownej rejestracji git config.


Faktycznym rozwiązaniem (ze skryptem) było uświadomienie sobie, że:
to, do czego się odnosisz w pliku konfiguracyjnym, jest skryptem powłoki (/bin/sh) , a nie skryptem DOS.

Więc co działa to:

C:\prog\git>git config --global core.editor C:/prog/git/npp.bat

Z C:/prog/git/npp.bat:

#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"

Lub

#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"

Z tym ustawieniem, mogę zrobić 'git config --global --edit 'z DOS lub Git Shell, lub mogę zrobić' git rebase -i ...' Z DOS lub Git Shell.
Polecenia bota wywołają nową instancję notepad++ (stąd opcja -multiInst') i czekają, aż ta instancja zostanie zamknięta przed kontynuacją.

Zauważ, że używam tylko"/", a nie \". I zainstalowałem msysgit używając opcji 2. (Dodaj katalog git\bin do środowiska PATH System windows został zaprojektowany w taki sposób, aby był łatwy w obsłudze i łatwy w obsłudze.]}

Fakt, że wrapper notepad++ jest wywoływany .nietoperz nie jest ważny.
Byłoby lepiej nazwać go "npp.sh' i umieścić go w katalogu [git]\cmd (lub w dowolnym katalogu, do którego odwołuje się zmienna środowiskowa PATH).


Zobacz też:


Lightfire228 dodaje w komentarzach :

Dla każdego, kto ma problem z tym, że N++ otwiera pusty plik, a git nie przyjmuje wiadomości o zatwierdzeniu, zobacz " przerywanie zatwierdzania z powodu pustej wiadomości ": Zmień plik .bat lub .sh, aby powiedzieć:

"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>. 

To powie notepad++, aby otworzyć tymczasowy plik commit, zamiast pustego nowego.

 496
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-29 06:57:35

Bazując na odpowiedzi Darrena , aby użyć Notepad++ możesz po prostu to zrobić (wszystko w jednej linii):

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

Oczywiście część C:/Program Files/Notepad++/notepad++.exe powinna być ścieżką do pliku wykonywalnego Notepad++ w Twoim systemie. Na przykład może to być C:/Program Files (x86)/Notepad++/notepad++.exe.

Działa jak urok dla mnie.
 263
Author: Bennett McElwee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-12 00:33:07

W każdym razie, po prostu bawiłem się tym i znalazłem następujące, które działają mi ładnie:

git config --global core.editor "'C:/Program Files/TextPad 5/TextPad.exe' -m"

Myślę, że CMD nie lubi pojedynczych cudzysłowów, więc musisz użyć podwójnych cudzysłowów "aby określić argument osadzony w spacji".

Cygwin (który, jak sądzę, jest podstawową platformą Bash Gita) z drugiej strony lubi zarówno ' jak i "; możesz określić ścieżki podobne do CMD, używając / zamiast \, tak długo, jak łańcuch jest cytowany, tj. single

-m nadpisuje / wskazuje na użycie wielu edytorów i nie ma potrzeby dodawania %* na końcu.

 45
Author: Darren Bishop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-25 23:35:06

Edit: Po aktualizacji do vim 7.3 doszedłem do wniosku, że najczystszym i najłatwiejszym sposobem na to jest:

  1. Dodaj główny folder Vima do swojej ścieżki (kliknij prawym przyciskiem myszy Mój Komputer -> Właściwości -> Zaawansowane -> Zmienne środowiskowe)

  2. Uruchom to.:git config --global core.editor "gvim --nofork '%*'"

Jeśli zrobisz to w ten sposób, to jestem pewien, że zadziała to również z cygwinem.

Oryginalna odpowiedź:

Nawet z kilkoma odpowiedziami związanymi z Vimem, miałem problem z uruchomieniem tego z gvim pod Windows(podczas gdy nie używałem pliku wsadowego lub % EDITOR% lub cygwin).

To, do czego ostatecznie doszedłem, jest ładne i czyste i czerpie z kilku rozwiązań tutaj:

git config --global core.editor \
"'C:/Program Files/Vim/vim72/gvim.exe' --nofork '%*'"

Jedno, co zajęło mi chwilę jest to, że nie są to ukośniki w stylu Windows, są to normalne ukośniki do przodu.

 23
Author: Nick Knowlson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-12 23:26:22

Notepad++ działa dobrze, chociaż wolę trzymać się Notatnika,- m, a nawet czasami wbudowanego " edit."

Problem, na który napotykasz używając Notepad++, jest związany z tym, jak git uruchamia edytor wykonywalny. Moim rozwiązaniem jest ustawienie edytora na plik wsadowy, a nie rzeczywisty edytor wykonywalny, który wykonuje następujące czynności:

start /WAIT "E:\PortableApps\Notepad++Portable\Notepad++Portable.exe" %*

/WAIT nakazuje wstrzymanie sesji wiersza poleceń do momentu zakończenia aplikacji, dzięki czemu będziesz mógł edytować swoje serce treść, podczas gdy git z radością czeka na Ciebie. % * przekazuje wszystkie argumenty do pliku wsadowego do Notepad++.

c:\src>echo %EDITOR%
c:\tools\runeditor.bat
 14
Author: Patrick Johnmeyer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-14 03:24:30

Wordpad!

Cieszę się, że używam Vima, ale ponieważ próbuję przedstawić Gita firmie, chciałem coś, co wszyscy byśmy mieli, i okazało się, że Wordpad działa dobrze (tzn. Git czeka, aż skończysz edytować i zamkniesz okno).

git config core.editor '"C:\Program Files\Windows NT\Accessories\wordpad.exe"'

To jest używanie Git Bash na msysgit; nie próbowałem z wiersza poleceń systemu Windows (jeśli to robi jakąś różnicę).

 10
Author: Gavin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-06 09:37:00

Używam również Cygwina w Windows, ale z gvim (w przeciwieństwie do terminala opartego na vim).

Aby to zrobić, wykonałem następujące czynności:

  1. Utworzono jednolinijkowy plik wsadowy (o nazwie git_editor.bat), który zawiera:
    "C:/Program Files/Vim/vim72/gvim.exe" --nofork "%*"
  2. umieszczone git_editor.bat w moim PATH.
  3. Zestaw GIT_EDITOR=git_editor.bat

Z tym zrobione, git commit, itp. poprawnie wywoła plik wykonywalny gvim.

Uwaga 1: opcja --nofork gvim zapewnia, że blokuje się do momentu zatwierdzenia wiadomość została napisana.

Uwaga 2: cudzysłowy wokół ścieżki do gvim są wymagane, jeśli w ścieżce znajdują się spacje.

Uwaga 3: cudzysłowy wokół "% * " są potrzebne na wypadek, gdyby git przekazał ścieżkę do pliku ze spacjami.

 9
Author: Tim Henigan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-15 19:28:15

Dzięki społeczności SO ... i trochę badań udało mi się zdobyć mojego ulubionego redaktora, EditPadPro , do pracy jako core editor z msysgit 1.7.5.GIT and TortoiseGit v1.7.3. 0 over WinXP SP3 ...

Podążając za powyższą radą dodałem ścieżkę do skryptu bash dla edytora kodu ...

git config --global core.editor c:/msysgit/cmd/epp.sh

Jednak po kilku nieudanych próbach powyższych rozwiązań ... W końcu udało mi się to uruchomić. Na dokumentację EditPadPro, dodając flaga '/ newinstance ' pozwoli powłoce czekać na wejście edytora ....

Znacznik '/newinstance ' był kluczem w moim przypadku ...

#!/bin/sh
"C:/Program Files/JGsoft/EditPadPro6/EditPadPro.exe" //newinstance "$*"
 8
Author: Eddie B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-26 00:54:56

Vim/Gvim działa dobrze dla mnie.

>echo %EDITOR%

c:\Vim\Vim71\vim.exe
 6
Author: Matt McMinn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-14 14:39:14

To jest 1 objaw większych problemów. Zwłaszcza, że masz coś ustawienie TERM = dumb. Inne rzeczy, które nie działają poprawnie to polecenie less, które mówi, że nie masz w pełni funkcjonalnego terminala. Wydaje się, że jest to najczęściej spowodowane ustawieniem TERM na coś w globalnych zmiennych środowiskowych Systemu windows. Dla mnie problem pojawił się po zainstalowaniu truskawkowego Perla niektóre informacje o tym są na błąd msysgit dla tego problemu jak również kilka rozwiązania.

Pierwszym rozwiązaniem jest naprawienie go w twoim~/.bashrc przez dodanie:

export TERM=msys

Możesz to zrobić z polecenia Git BASH w następujący sposób:

echo "export TERM=msys" >> ~/.bashrc

Innym rozwiązaniem, które ostatecznie jest tym, co zrobiłem, ponieważ nie dbam o powody Strawberry Perl do dodania TERM = dumb do moich ustawień środowiska, jest usunięcie TERM = dumb zgodnie z zaleconym w tym komentarzu do raportu błędu msysgit .

Kontrola Panel / System / Zaawansowane / Środowisko Zmienne... (lub podobne, w zależności od Twoja wersja systemu Windows) jest tam, gdzie zmienne środowiskowe sticky są ustawiane na Windows. Domyślnie termin nie jest gotowi. Jeśli termin jest tam ustawiony, to Ty (lub jeden z programów, które posiadasz zainstalowane-np. Perl truskawkowy) ma Ustaw. Usuń to ustawienie, a Ty powinno być dobrze.

Podobnie jeśli używasz Perla truskawkowego i dbasz o klienta CPAN lub coś w tym stylu, możesz zostawić TERM=dumb w spokoju i użyć unset TERM w swoim ~/.plik bashrc, który będzie miało podobny efekt do Ustawienia jawnego terminu jak powyżej.

Oczywiście wszystkie inne rozwiązania są poprawne, których możesz użyć git config --global core.editor $MYFAVORITEEDITOR, aby upewnić się, że git używa Twojego ulubionego edytora, gdy będzie musiał go dla Ciebie uruchomić.

 6
Author: lambacck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-26 08:52:55

Dla Atom możesz zrobić

git config --global core.editor "atom --wait"

I podobne dla VSCode

git config --global core.editor "code --wait"

, który otworzy Atom lub VSCode okno do zatwierdzenia,

Lub dla

git config --global core.editor "subl -n -w"
 6
Author: OmgKemuel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-05 12:56:01

Miałem PortableGit 1.6 działa dobrze, ale po aktualizacji do PortableGit-1.7 Windows release miał problemy. Niektóre polecenia git otwierają Notepad++.exe w porządku, ale niektórzy nie, szczególnie Git rebase zachowuje się inaczej.

Problem polega na tym, że niektóre polecenia uruchamiają proces cmd systemu windows, niektóre używają procesu cmd systemu unix. Chcę nadać atrybuty startowe edytorowi Notepad++, więc musisz mieć dostosowany skrypt. Moje rozwiązanie jest takie.

1) Utwórz skrypt do uruchomienia odpowiedniego edytora tekstu. Skrypt wygląda dziwnie, ale obsługuje zarówno odmianę windows, jak i unix. c:/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 %*

2) Ustaw globalny rdzeń.zmienna edytora Skrypt został zapisany w folderze git / cmd, więc jest już w ścieżce gitconsole, jest to obowiązkowe, ponieważ pełna ścieżka może nie działać poprawnie.

git config --global core.editor "git-editor.bat"

Teraz mogę uruchomić git commit-a i Git rebase-i master komendy. Spróbuj, jeśli masz problemy z narzędziem Git windows.

 4
Author: Whome,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-06 09:36:53

Używam Gita na wielu platformach i lubię używać tych samych ustawień Gita na wszystkich z nich. (W rzeczywistości, mam wszystkie moje pliki konfiguracyjne pod kontrolą Wydania z git, i umieścić klon repozytorium git na każdej maszynie.) Rozwiązanie, które wymyśliłem Jest Takie:

Ustawiłem mój editor na giteditor

git config --global core.editor giteditor

Następnie tworzę dowiązanie symboliczne o nazwiegiteditor , które znajduje się w mojej ścieżce . (Mam osobisty bin katalog, ale gdziekolwiek w Ścieżka działa.) Ten link wskazuje na mojego obecnego redaktora. Na różnych maszynach i platformach używam różnych edytorów, więc nie muszę zmieniać mojej uniwersalnej konfiguracji Gita (.gitconfig ), tylko link, na który wskazuje giteditor .

Dowiązania symboliczne są obsługiwane przez każdy znany mi system operacyjny, choć mogą używać różnych poleceń. Dla Linuksa używasz ln-s . W systemie Windows używasz wbudowanego cmd mklink. Mają różne składnie( które powinieneś sprawdzić), ale wszystko działa tak samo, naprawdę.

 4
Author: Bill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-10 13:01:15

Na podstawie VonC sugestia powyżej , to działało dla mnie (doprowadzało mnie do szału):

git config --global core.editor "'C:/Program Files (x86)/Sublime Text 3/subl.exe' -wait"

Pominięcie -wait może powodować problemy, zwłaszcza jeśli pracujesz z gerritem i zmieniasz identyfikatory, które muszą być RĘCZNIE skopiowane na dół wiadomości commit

 4
Author: dan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:57

Edit .plik gitconfig w c:\Users\YourUser folder i dodaj:

[core]
editor = 'C:\\Program files\\path\\to\\editor.exe'
 4
Author: guwer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-13 14:39:55

To jest moja konfiguracja do używania Geany jako edytora dla git:

git config --global core.editor C:/path/to/geany.bat

O następującej treści w geany.bat:

#!/bin/sh
"C:\Program Files\Geany\bin\Geany.exe" --new-instance "$*"

Działa zarówno w konsoli DOS jak i msysgit.

 3
Author: CharlesB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-29 08:51:54

Miałem problem z pozyskaniem git do współpracy z wordpadem, KomodoEdit i prawie każdym innym edytorem, który mu daję. Większość otwarta do edycji, ale git wyraźnie nie czeka na save / close.

Jako kulę właśnie robiłem tj.

git commit -m "Fixed the LoadAll method"

Aby utrzymać rzeczy w ruchu. Zazwyczaj moje komunikaty dotyczące commitów są krótsze niż prawdopodobnie powinny być, ale najwyraźniej jest trochę pracy do zrobienia w wersji git dla systemu Windows.

GitGUI też nie jest takie złe. Informatyka wymaga trochę orientacji, ale potem działa dość dobrze.
 3
Author: J Wynia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-01 16:59:57

Używam Cygwina w Windowsie, więc używam:

export EDITOR="emacs -nw"

-nw jest dla no-windows, tzn. aby Emacs nie próbował używać X11.

Skróty klawiaturowe Emacsa nie działają dla mnie z powłoki Windows, więc używałbym tego tylko z powłoki Cygwin... (zalecane rxvt.)

 3
Author: bjnortier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-28 21:23:25

Wygląda na to, że Git nie znajdzie edytora, jeśli w ścieżce są spacje. Więc będziesz musiał umieścić plik wsadowy wymieniony w Odpowiedzi Patryka w ścieżce nie-białych znaków.

 2
Author: Community,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:55:03

Wolę używać Emacsa. Ustawienie go może być trochę trudne.

  1. ściągnij Emacsa i rozpakuj go gdzieś jak c:\emacs.
  2. Run c:\emacs\bin\addpm.exe. Musisz kliknąć prawym przyciskiem myszy i "uruchom jako Administrator", jeśli używasz systemu Windows Vista lub nowszego. Spowoduje to umieszczenie plików wykonywalnych na twojej ścieżce.
  3. dodaj (server-start) gdzieś w pliku .emacs. Zobacz Emacs Windows FAQ aby dowiedzieć się, gdzie umieścić plik .emacs.
  4. git config --global core.editor emacsclientw

Git otworzy teraz pliki w ramach istniejącego procesu emacs. Będziesz musiał uruchomić ten istniejący proces ręcznie z c:\emacs\bin\runemacs.exe.

 2
Author: Michael Steele,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-23 15:32:49

Po prostu miałem ten sam problem i znalazłem inne rozwiązanie. I was getting

error: There was a problem with the editor 'ec'

Mam VISUAL=ec i plik wsadowy o nazwie ec.bat na mojej ścieżce, który zawiera jedną linię:

c:\emacs\emacs-23.1\bin\emacsclient.exe %*

To pozwala mi edytować pliki z linii poleceń za pomocą ec <filename>, a posiadanie visual set oznacza, że większość programów unixy również je odbiera. Git wydaje się przeszukiwać ścieżkę inaczej niż inne moje polecenia - kiedy spojrzałem na git commit W ProcMon widziałem, że szuka w każdym folderze na ścieżce dla ec i dla ec.exe, ale nie dla ec.bat. Dodałem kolejną zmienną środowiskową (GIT_EDITOR=ec.bat) i wszystko było w porządku.

 1
Author: Tom Dunham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-04 15:55:51

Udało mi się uruchomić wersję środowiska ustawiając zmienną edytora używając cudzysłowów i /:

EDITOR="c:/Program Files (x86)/Notepad++/notepad++.exe"
 1
Author: Mike,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-25 07:44:11

Używam Githuba Dla Windows, który jest ładną opcją wizualną. Ale ja też wolę linię komend, więc żeby działało kiedy otwieram repo w Git shell ustawiam po prostu:

git config --global core.editor vim
Co działa świetnie.
 1
Author: JaKXz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-07 19:08:25

To działa dla Powershell i cmder-1.2 (gdy jest używany z powershell). W ~/.gitconfig

[core]
    editor = 'c:/program files/sublime text 3/subl.exe' -w

Jak mogę uczynić Sublime Text domyślnym edytorem dla Gita?

 1
Author: rofrol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:57

Wskrzeszam Stary wątek, ale znalazłem pięknie proste rozwiązanie zamieszczone Tutaj - chociaż może być błąd w ścieżce, w której trzeba skopiować nad podanym przez autora plikiem "subl". Uruchamiam Win 7 x64 i musiałem umieścić plik "subl" w moim folderze /Git/cmd/, aby to działało. To działa jak urok.

 1
Author: avg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-27 12:42:33

ATOM i Windows 10

  1. Kliknij prawym przyciskiem myszy ikonę atomu na pulpicie i kliknij Właściwości.
  2. skopiowano ścieżkę lokalizacji "Start in"
  3. spojrzał tam z Eksploratorem windows i znalazł " atom.exe".
  4. Wpisałem to w Git bash:

    git config --global core.editor C:/Users/YOURNAMEUSER/AppData/Local/atom/app-1.7.4/atom.exe"

Uwaga: zmieniłem wszystkie \ na /. Stworzyłem .bashrc w moim katalogu domowym i użyłem / do ustawienia mojego katalogu domowego i zadziałało, więc założyłem / będzie sposobem na idź.

ATOM-edytor git git-bash Okna-10

 1
Author: Jonathan Ramos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-04 05:37:48

Przy użyciu zdalnie montowanego homedrive (Samba share, nfs, ...) Twój ~/.git folder jest współdzielony przez wszystkie systemy, co może prowadzić do kilku problemów. Dlatego wolę skrypt, który określi właściwy edytor dla właściwego systemu:

#!/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";

Można by rozważyć zwykły skrypt powłoki, ale użyłem Perla, ponieważ perl jest dostarczany z msysgit, a twoje systemy unixoid również go dostarczą. Umieszczenie skryptu w /home/username/bin, który należy dodać do PATH w .bashrc lub .profile. Po dodaniu z git config --global core.editor giteditor.pl masz właściwy redaktor, gdziekolwiek jesteś.

 0
Author: mbx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-23 15:55:52

To działa dla mnie przy użyciu Cygwin i Textpad 6 (EDIT: działa również z Textpad 5, o ile dokonasz oczywistej zmiany w skrypcie), i prawdopodobnie model może być używany również dla innych edytorów: {]}

~/.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"

Ten jednowarstwowy działa również:

~/script/textpad.sh "wariant 2": {]}

"`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`" -m "`cygpath -w $1`"
 0
Author: kghastie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-26 20:28:18

Oto rozwiązanie z Cygwin:

#!/bin/dash -e
if [ "$1" ]
then k=$(cygpath -w "$1")
elif [ "$#" != 0 ]
then k=
fi
Notepad2 ${k+"$k"}
  1. Jeśli nie ma ścieżki, nie ma ścieżki

  2. Jeśli ścieżka jest pusta, podaj pustą ścieżkę

  3. Jeśli ścieżka nie jest pusta, przekonwertuj do formatu Windows.

Następnie ustawiam te zmienne:

export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'
  1. Edytor pozwala skryptowi pracować z Git

  2. GIT_EDITOR pozwala skryptowi pracować z poleceniami Hub

Źródło

 0
Author: Steven Penny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-24 23:03:24

Używam TortoiseGit prosto z pudełka. Pięknie integruje się z moimi kluczami publicznymi PuTTY. Ma idealny edytor do komunikatów commit.

 -1
Author: icc97,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-10 12:13:32