Jak sprawić, by Git używał wybranego przeze mnie edytora do commitów?

Wolałbym pisać swoje commity w Vimie, ale to otwiera je w Emacsie.

Jak skonfigurować Git tak, aby zawsze używał Vima? Zauważ, że chcę to robić globalnie, a nie tylko dla pojedynczego projektu.

Author: Mark Amery, 2010-04-08

18 answers

Jeśli chcesz ustawić edytor tylko dla Gita, zrób albo (nie potrzebujesz obu):

  • Zestaw core.editor w Twoim Git config: git config --global core.editor "vim"
  • Ustaw GIT_EDITOR zmienna środowiskowa: export GIT_EDITOR=vim

Jeśli chcesz ustawić edytor dla Git oraz innych programów, Ustaw standardowe zmienne środowiskowe VISUAL i EDITOR*:

export VISUAL=vim
export EDITOR="$VISUAL"

* ustawienie obu nie jest koniecznie potrzebne, ale niektóre programy mogą nie używać więcej-poprawne VISUAL. Zobacz też VISUAL vs.EDITOR.


Dla Wysublimowanego Tekstu : Dodaj to do .gitconfig. --wait jest ważne. (pozwala wpisać tekst w sublime i będzie czekać na zdarzenie save/close.

[core]
    editor = 'subl' --wait

'subl' może być zastąpiona pełną ścieżką pliku wykonywalnego, ale zwykle jest dostępna po prawidłowej instalacji.

 2758
Author: digitaldreamer,
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-08-16 08:25:43

Skopiuj wklej to:

git config --global core.editor "vim"
Na wypadek, gdybyś chciał wiedzieć, co robisz. From man git-commit:

ZMIENNE ŚRODOWISKOWE I KONFIGURACYJNE

Edytor używany do edycji komunikatu commit log zostanie wybrany ze zmiennej środowiskowej GIT_EDITOR, zmiennej konfiguracyjnej core.editor, zmiennej środowiskowej VISUAL lub zmiennej środowiskowej EDITOR (w tej kolejności).

 475
Author: Mark Rushakoff,
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-07-24 14:40:08

Na Ubuntu, a także Debianie (dzięki @MichielB) Zmiana domyślnego edytora jest również możliwa poprzez uruchomienie:

sudo update-alternatives --config editor

, który wyświetli następujący komunikat:

There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
* 3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number: 
 151
Author: Koen.,
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-26 23:19:50

W windows 7, podczas dodawania edytora" Sublime " nadal dawał mi błąd:

Przerywanie zatwierdzania z powodu pustej wiadomości zatwierdzania.

Sublime nie była w stanie utrzymać ostrości.

Aby to naprawić otworzyłem .plik gitconfig w c:/users/username / folder i dodano następujący wiersz z opcją -- wait poza podwójnymi cudzysłowami.

[core]
      editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait
Mam nadzieję, że będzie to pomocne dla kogoś, kto ma podobny problem z Sublime.
 52
Author: Anmol Saraf,
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-03-07 00:00:37

W Windows 7 ustawienie edytora na Notepad++

  • Otwórz dowolny edytor tekstu.
  • otwórz ten plik: C:\Users\YOUR_USERNAME\.gitconfig
  • Dodaj ten dział na dole:

[core]
    editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' 
  • Zapisz i zamknij plik.
  • kiedy wykonujesz polecenie z Gitem, po prostu napisz git commit i naciśnij Enter. Otworzy Notatnik++.
  • Zapisz komunikat o zatwierdzeniu na górze pliku, a następnie zapisz i zamknij plik. Zrobione!
 49
Author: Ryan,
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-03-07 00:08:27

A jeśli pracujesz z projektantami używając wiersza poleceń to Pico i nie znasz skrótów;)

git config --global core.editor "pico"

Lub

export VISUAL=pico
export EDITOR=pico
 21
Author: tristanbailey,
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-27 13:56:25

Aby uczynić Visual Studio Code (vscode) domyślnym edytorem git

git config --global core.editor "code --wait"
 17
Author: Marcelo Mason,
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-28 20:42:33

Ustawienie Sublime Text 2 jako git commit editor W Mac OSX 10

Uruchom to polecenie:

$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"

Lub po prostu:

$ git config --global core.editor "subl -w"
 16
Author: Mohsen,
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-07-23 18:36:33

Atom jako twój edytor git

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

Atom musi być skonfigurowany tak, aby działał z linii poleceń:

OS X : zainstaluj polecenia powłoki z atomu: pasek menu > Atom > Install Shell Commands

Windows: nie jest wymagane działanie-atom jest domyślnie skonfigurowany do uruchamiania z wiersza poleceń

 13
Author: 2Toad,
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-07-13 17:43:30

Dla użytkowników Emacsa

.emacs:

(server-start)

shellrc:

export EDITOR=emacsclient
 9
Author: Bendlas,
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-08 00:42:49

Windows: ustawienie notatnika jako domyślnego edytora komunikatów zatwierdzania

git config --global core.editor notepad.exe

Naciśnij Ctrl+S aby zapisać wiadomość commit. Aby odrzucić, po prostu zamknij okno notatnika bez zapisywania.

W przypadku, gdy naciśniesz skrót do zapisz, a następnie zdecydujesz się przerwać, przejdź do Plik - >Zapisz jako, a w oknie dialogowym, które zostanie otwarte, Zmień "Zapisz jako typ" na " wszystkie pliki (*.*)". Zobaczysz plik o nazwie "COMMIT_EDITMSG". Usuń go i zamknij okno notatnika.

Edit: , i łatwiej, usuń całą zawartość z otwartego okna notatnika i naciśnij Zapisz. (thanks mwfearnley za komentarz!)

Myślę, że dla małych zapisów, takich jak commit wiadomości notatnik służy najlepiej, ponieważ jest prosty, jest tam z oknami, otwiera się w mgnieniu oka. Nawet twój wzniosły może zająć sekundę lub dwie, aby się odpalić, gdy masz mnóstwo wtyczek i takich tam.

 9
Author: Sнаđошƒаӽ,
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-06-30 10:31:14

Najlepsze ustawienia dla Sublime Text 3 jako twojego edytora git (instrukcje dla Windows i Linux):

Aby postępować zgodnie z tymi instrukcjami w systemie Windows upewnij się, że masz zainstalowany git dla Windows. W Windowsie lubię używać Git Basha tak, aby bardziej przypominał Linuksa.

Po pierwsze, Chcemy stworzyć specjalny projekt Sublime Text tak, że możemy określić specjalne ustawienia projektu, które chcemy ustawić za każdym razem, gdy git wywoła edytor, aby ułatwić edytowanie w git. Na przykład, ja normalnie Ustaw miarkę na 120 znaków w większości projektów, ale dla komunikatów git commit chcę, aby była to 72 znaki, aby dobrze pasowała do terminala podczas wywoływania git log lubgit lg.


1. Tworzenie Wysublime Text project z ustawieniami, których chcemy użyć do edycji komunikatów git commit

Otwórz Sublime Text i przejdź do "Plik" -- > "Nowe okno", aby utworzyć nowy anonimowy projekt. Przejdź do "projekt" -- > " Zapisz projekt jako..."i wybierz miejsce, aby go uratować. w Linuksie zapisałem go w moim Katalog domowy Linuksa o nazwie pliku .gitconfig.sublime-project. Jego ścieżka jest zatem: ~/.gitconfig.sublime-project. w systemie Windows zapisz go również w katalogu domowym, np: C:\Users\MY_USER_NAME\.gitconfig.sublime-project Teraz przejdź do "Projekt" -- > "Edytuj projekt", aby edytować ustawienia projektu. Wklej następujące elementy i zapisz ustawienia. W razie potrzeby dokonaj dalszych zmian w ustawieniach projektu.

{
    //For folder settings help see here: https://www.sublimetext.com/docs/3/projects.html 

    "folders":
    [

    ],

    "settings":
    {

        // Disables horizontal scrolling if enabled.
        // May be set to true, false, or "auto", where it will be disabled for
        // source code, and otherwise enabled.
        "word_wrap": false,

        // Set to a value other than 0 to force wrapping at that column rather than the
        // window width
        "wrap_width": 0,

        // Columns in which to display vertical rulers
        "rulers": [72, 50], //72 is recommended by git for commit message content, and 50 for commit titles

        // The number of spaces a tab is considered equal to
        "tab_size": 4,

        // Set to true to insert spaces when tab is pressed
        "translate_tabs_to_spaces": true,
    },

    "build_systems":
    [

    ]

}

2. Ustaw edytor, który będzie używany przez git

Teraz musimy ustawić edytor, który będzie używany przez git, edytując plik .gitconfig.

Dla Linux:

Kopia tego użytkownika będzie umieszczona w ~/.gitconfig. Otwórz ten plik i dodaj następujące wiersze. pamiętaj, aby użyć właściwej nazwy ścieżki do projektu git, który właśnie utworzyłeś powyżej! używam ~/.gitconfig.sublime-project.

[core]
    editor = subl --project ~/.gitconfig.sublime-project --wait

The --wait jest ważne, ponieważ zmusza git do czekania aż zamkniesz plik, zanim będzie kontynuowany. Linia --project jest ważna, aby powiedzieć Sublime Text, który projekt chcesz otworzyć za każdym razem, gdy git otworzy Sublime.

Per @ digitaldreamer ' s answer above ( https://stackoverflow.com/a/2596835/4561887), "subl Może być zastąpiona pełną ścieżką pliku wykonywalnego, ale[alias subl] jest zwykle dostępny, gdy [Sublime jest] poprawnie zainstalowany."

Dla Windows:

Dla systemu Windows, najpierw przeczytaj instrukcje Linuksa, aby uzyskać informacje w tle. Teraz zrobimy coś niemal identycznego.

(opcjonalnie: utwórz alias subl do użycia w Git BASH):

Otwórz edytor tekstu (np: Notepad, Notepad++, Sublime Text, Geany, etc), i utworzyć plik o nazwie ".bash_profile " w katalogu domowym. Jego droga będzie więc: C:\Users\MY_USER_NAME\.bash_profile. Zapisz w nim:

alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"

Tworzy to alias Git BASH o nazwie subl, który możemy teraz użyć w Git BASH Dla Windows, aby łatwo otworzyć Sublime. Ten krok nie jest wymagany, ale jest przydatny do ogólnego użytku w Git BASH. Teraz możesz wywołać subl ., na przykład w Git BASH, aby otworzyć nowy projekt Sublime w bieżącym katalogu.

(obowiązkowe):

Edytuj plik .gitconfig znaleziony w katalogu domowym: C:\Users\MY_USER_NAME\.gitconfig, dodając do niego następujące elementy. Zauważ subtelne zmiany z instrukcji Linuksa powyżej:

[core]
  editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
  • zauważ, że musisz podać pełną ścieżkę do pliku wykonywalnego Sublime Text. zwróć uwagę na kierunek cięć! użyj / Nie \, aby oddzielić foldery w nazwie ścieżki! (Dzięki VonC za pomoc w tym ).
  • nasz subl alias, który stworzyliśmy w przypadku Gita BASH powyższe nie działa tutaj, więc nie możesz używać go tak jak w przykładzie Linuksa, zamiast tego musisz podać całą ścieżkę, jak pokazano powyżej.
  • symbol ~ nadal jednak działa tutaj, aby dostać się do katalogu Windows home.

2.5. (Opcjonalnie) zainstaluj pakiet " Git " do Sublime Text 3.

Daje to podświetlenie składni dla git commit wiadomości, a także dostęp do innych komend git, takich jak git blame (których często używam w Sublime Tekst) lub git commit (którego nie używam w Sublime Text, ponieważ wolałbym wiersz poleceń dla ogólnego git flow, o czym wspomniałem w komentarzach poniżej tej odpowiedzi).

Aby zainstalować pakiet: najpierw upewnij się, że zainstalowana jest "kontrola pakietów". Następnie naciśnij Ctrl + Shift + P (tak samo jak Tools → paleta poleceń) i wpisz całość lub część "Package Control: Install Package", a następnie naciśnij Enter. W oknie wyszukiwania, które się pojawi, wyszukaj pakiet " Git " i naciśnij Wejdź na nią lub kliknij na nią, aby automatycznie ją zainstalować.

Po zainstalowaniu, Ctrl + Shift + P następnie wyszukanie "git" spowoduje wyświetlenie poleceń git, które możesz teraz użyć wewnątrz Sublime Text, takich jak git blame.


3. Użyj go

Teraz, gdy wywołasz git commit, na przykład, jak zwykle z wiersza poleceń, Sublime Text otworzy się do .gitconfig.sublime-project, które stworzyliśmy powyżej, z ustawieniami tego projektu! Po wpisaniu akapitu będziesz zauważ, że rozciąga się poza miarką, którą ustawiliśmy, ponieważ miękkie zawijanie słów jest wyłączone. Aby wymusić zawijanie na końcu każdego wiersza, Umieść kursor na długiej linii, którą chcesz zawijać automatycznie i naciśnij Alt + Q . będzie teraz hard-wrap / hard-fold przy 72 znakach, co ustawiliśmy w powyższym parametrze "miarki" w ustawieniach projektu.

Teraz zapisz swoją wiadomość commit za pomocą Ctrl + S , i exit (aby zakończyć swoje git commit) z Ctrl + Shift + W .

Zrobione!
 5
Author: Gabriel Staples,
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-04-03 15:52:30

Mvim jako twój edytor git

Podobnie jak wszystkie inne aplikacje GUI, musisz uruchomić mvim z flagą wait.

git config --global core.editor "mvim --remote-wait"
 2
Author: Matteo Rolla,
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-08-12 14:40:09

Po prostu spróbuj EDITOR=vim git commit.

Lub możesz ustawić swój edytor na vim przez export EDITOR=vim w swoim bashrc.

 1
Author: Xiao Hanyu,
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-07-01 07:21:10

Dla użytkowników TextWrangler z Mac App store:

git config --global core.editor "open -n -W -a TextWrangler"

Upewnij się również, że "Texttwrangler > Preferencje > aplikacja > gdy Texttwrangler stanie się aktywny: "ustawienie jest ustawione na"nic nie rób"

To działa dla mnie na OS X 10.11.4 z TextWrangler 5.0.2 z Mac App store.

Wyjaśnienie:

-n oznacza otwarcie w nowej instancji.

- W oznacza, że przed użyciem zawartości edytowanej plik jako komunikat commit.

The - a TextWrangler oznacza użycie aplikacji TextWrangler do otwarcia pliku.

Zobacz man open w aplikacji Mac Terminal, aby uzyskać więcej informacji.

 1
Author: DLRdave,
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-04-15 21:32:19

Dla użytkowników Windows, którzy chcą używać neovim z podsystemem Windows dla Linuksa:

git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"

To jest a nie niezawodne rozwiązanie, ponieważ nie obsługuje interaktywnego rebasingu (na przykład). Ulepszenia bardzo mile widziane!

 1
Author: brcolow,
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-08 21:21:44

Dla Użytkowników Textmate

Otwiera edytor Textmate, gdy chcesz edytować commity. Wymaga zainstalowania narzędzi wiersza poleceń textmate.

git config --global core.editor "mate -w"

 -1
Author: code ninja,
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-07-23 19:46:18

Dla użytkowników systemu Windows, którzy chcą korzystać z edytora tekstu Kinesics

Utwórz plik o nazwie 'k.sh', Dodaj następujący tekst i umieść w swoim katalogu domowym (~):

winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1

W typie Git prompt:

git config --global core.editor ~/k.sh
 -1
Author: Mike Cheel,
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-01 14:17:58