Wolałbym pisać wiadomości z zatwierdzeniami w Vimie, ale otwiera je w Emacsie.
Jak skonfigurować Git, aby zawsze korzystał z Vima? Zauważ, że chcę to zrobić globalnie, nie tylko dla jednego projektu.
Wolałbym pisać wiadomości z zatwierdzeniami w Vimie, ale otwiera je w Emacsie.
Jak skonfigurować Git, aby zawsze korzystał z Vima? Zauważ, że chcę to zrobić globalnie, nie tylko dla jednego projektu.
Odpowiedzi:
Jeśli chcesz ustawić edytor tylko dla Git, wykonaj jedną z tych czynności (nie potrzebujesz obu):
core.editor
w konfiguracji Git:git config --global core.editor "vim"
GIT_EDITOR
zmienną środowiskową:export GIT_EDITOR=vim
Jeśli chcesz ustawić edytor dla Git i innych programów , ustaw standardowe VISUAL
i EDITOR
zmienne środowiskowe *:
export VISUAL=vim
export EDITOR="$VISUAL"
* Ustawienie obu nie jest konieczne, ale niektóre programy mogą nie używać bardziej poprawnych VISUAL
. Zobacz VISUAL
vsEDITOR
.
Dla Sublime Text : Dodaj to do .gitconfig
. Jest --wait
to ważne (pozwala na wpisywanie tekstu w wysublimowany sposób i będzie czekać na zdarzenie zapisu / zamknięcia).
[core]
editor = 'subl' --wait
„subl” można zastąpić pełną ścieżką do pliku wykonywalnego, ale zwykle jest dostępny, jeśli jest poprawnie zainstalowany.
git config --global
że zapisałby do twojego osobistego pliku konfiguracyjnego git. Tak jest w Unices ~/.gitconfig
. To skonfiguruje to dla wszystkich twoich repozytoriów.
git commit --amend
-w
nie jest konieczne; -w {scriptout}
zapisuje wszystkie znaki, które wpiszesz podczas edycji, aby odtworzyć później. Być może mylisz go -f
, co jest konieczne, gdy wywołujesz wersję Vima z GUI. Oznacza to, że jeśli używasz mvim
, to edytorem, który określisz, powinien być mvim -f
zamiast mvim
.
Skopiuj wklej to:
git config --global core.editor "vim"
Na wypadek gdybyś chciał wiedzieć, co robisz. Od man git-commit
:
ZMIENNE ŚRODOWISKA I KONFIGURACJI
Edytor używany do edycji komunikatu dziennika zatwierdzenia zostanie wybrany ze
GIT_EDITOR
zmiennej środowiskowej, zmiennejcore.editor
konfiguracyjnej, zmiennejVISUAL
środowiskowej lubEDITOR
zmiennej środowiskowej (w tej kolejności).
VISUAL
lub EDITOR
, ale na pewno nie używają GIT_EDITOR
lub core.editor
.
W Ubuntu i Debianie (dzięki @MichielB) zmiana domyślnego edytora jest również możliwa poprzez uruchomienie:
sudo update-alternatives --config editor
Co spowoduje wyświetlenie następujących informacji:
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:
alternatives
System Debiana jest znacznie łatwiejszym sposobem zarządzania ustawieniami domyślnymi dla obsługiwanych typów programów. Dla odniesienia: debian-administration.org/article/91/…
GIT_EDITOR
a EDITOR
nie działać --ubuntu
update-alternatives
pokaże wszelkie edytory, które zostały zainstalowane. Koen po prostu nie ma zainstalowanego Emacsa.
W Windows 7, podczas dodawania edytora „Sublime” nadal pojawiał się błąd:
Przerwanie zatwierdzenia z powodu pustego komunikatu zatwierdzenia.
Sublime nie był w stanie utrzymać ostrości.
Aby to naprawić, otworzyłem plik .gitconfig w folderze c: / users / username / i dodałem 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 okaże się pomocny dla kogoś, kto ma podobny problem z Sublime.
git config --global core.editor "'C:/Program Files/Sublime Text 3/subl.exe' --wait"
C:\Users\YOUR_USERNAME\.gitconfig
[core]
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe'
git commit
i naciśnij Enter
. Otworzy się Notepad ++.-multiInst
parametru do notatnika ++ i ewentualnie -notabbar
. Zrób to, jeśli git nie wie, kiedy skończyłeś edycję pliku i albo czeka wiecznie, albo wcale.
>git config --global core.editor '"C:/Program Files (x86)/Notepad++/notepad++.exe"'
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar
- to znaczy parametry poza ograniczającymi pojedynczymi cudzysłowami
Aby ustawić Visual Studio Code (vscode) jako domyślny edytor git
git config --global core.editor "code --wait"
A jeśli pracujesz z projektantami za pomocą wiersza poleceń, to Pico i nie znasz skrótów;)
git config --global core.editor "pico"
Lub
export VISUAL=pico
export EDITOR=pico
git config --global core.editor "atom --wait"
Atom musi być skonfigurowany do działania z wiersza poleceń, aby powyższe działało:
OS X : zainstaluj polecenia powłoki z Atom: pasek menu> Atom> Zainstaluj polecenia powłoki
Windows : nie jest wymagana żadna akcja - domyślnie atom jest skonfigurowany do działania z wiersza poleceń
Uruchom to polecenie:
$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"
Lub tylko:
$ git config --global core.editor "subl -w"
-w
parametr. Na przykład. $ git config --global core.editor "code -w"
. Schludne rzeczy
git config --global core.editor notepad.exe
Naciśnij Ctrl+, Saby zapisać wiadomość zatwierdzenia. Aby odrzucić, po prostu zamknij okno notatnika bez zapisywania.
Jeśli naciśniesz skrót do zapisywania, a następnie zdecydujesz się przerwać, przejdź do Plik-> Zapisz jako, aw otwartym oknie dialogowym zmień „Zapisz jako typ” na „Wszystkie pliki (*. *)”. Zobaczysz plik o nazwie „COMMIT_EDITMSG”. Usuń go i zamknij okno notatnika.
Edycja: Ewentualnie i łatwiej usuń całą zawartość z otwartego okna notatnika i naciśnij Zapisz. (dzięki mwfearnley za komentarz!)
Myślę, że w przypadku małych wpisów, takich jak komunikaty zatwierdzeń, notatnik najlepiej działa, ponieważ jest prosty, jest dostępny z oknami, otwiera się w mgnieniu oka. Nawet twój wzniosły może zająć sekundę lub dwie, aby zostać zwolnionym, gdy masz mnóstwo wtyczek i innych rzeczy.
\r\n
(nowa linia w systemie Windows) i \n
(nowa linia w systemie Linux, również domyślna dla Git).
core.editor = 'notepad' .git/COMMIT_EDITMSG --wait
sposób, aby otworzyła się i
To zapewnia odpowiedź dla osób, które dotrą do tego pytania, które mogą chcieć połączyć edytor inny niż vim.
Połączony zasób Github prawdopodobnie będzie aktualizowany, gdy edytory są aktualizowane, nawet jeśli odpowiedzi na SO (w tym ten) nie są.
Kojarzenie edytorów tekstu z git
Wpis Githuba pokazuje dokładnie, co wpisać w linii poleceń dla różnych edytorów, w tym opcje / flagi specyficzne dla każdego edytora, aby działał najlepiej z git.
Notepad ++:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Wzniosły tekst:
git config --global core.editor "'c:/Program Files/sublime text 3/subl.exe' -w"
Atom:
git config --global core.editor "atom --wait"
Powyższe polecenia zakładają, że edytor został zainstalowany w domyślnym katalogu dla komputera z systemem Windows.
Komendy w zasadzie dodają tekst między podwójnymi cudzysłowami do .gitconfig
twojego katalogu domowego.
Na komputerze z systemem Windows prawdopodobnie znajduje się dom C:\Users\your-user-name
, gdzie nazwa użytkownika to nazwa logowania.
Z wiersza poleceń możesz przejść do tego katalogu, wpisując cd ~
.
na przykład powyższe polecenie spowoduje dodanie następującego wiersza w [core]
sekcji tak:
[core]
editor = 'C:/Program Files/sublime text 3/subl.exe' -w
Jeśli masz inny edytor, po prostu zastąp go ścieżką do edytora, używając jednej z powyższych metod. (i mam nadzieję, że żadne flagi nie są potrzebne do optymalnego wykorzystania).
Dla użytkowników emacsa
.emacs
:
(server-start)
shellrc
:
export EDITOR=emacsclient
git config --global core.editor "emacs -nw"
git config --global core.editor "emacs -nw -q"
, gdzie -q
pomija pliki inicjujące.
Aby postępować zgodnie z tymi instrukcjami w systemie Windows, upewnij się, że zainstalowałeś Git dla Windows . W Windows lubię używać Git Bash, aby bardziej przypominał Linuksa.
Po pierwsze, chcemy stworzyć specjalny projekt Sublime Text, abyśmy mogli określić specjalne ustawienia projektu, które chcemy ustawić za każdym razem, gdy Git wywołuje edytor, aby ułatwić edycję w Git. Na przykład normalnie ustawiam linijkę na 120 znaków w większości projektów, ale dla wiadomości Git commit chcę, aby miała 72 znaki, aby ładnie pasowała do terminala, gdy dzwonisz git log
lub git lg
.
Otwórz Sublime Text i przejdź do menu „Plik” → „Nowe okno”, aby utworzyć nowy anonimowy projekt. Przejdź do menu „Projekt” → „Zapisz projekt jako ...” i wybierz miejsce, aby go zapisać. W systemie Linux zapisałem go w katalogu domowym Linuksa z nazwą pliku .gitconfig.sublime-project
. Jego ścieżka jest zatem: ~/.gitconfig.sublime-project
. W systemie Windows zapisz go również w katalogu domowym, na przykład: C:\Users\MY_USER_NAME\.gitconfig.sublime-project
Teraz przejdź do menu „Projekt” → „Edytuj projekt”, aby edytować ustawienia projektu. Wklej poniższe i zapisz ustawienia. W razie potrzeby wprowadź dalsze zmiany ustawień 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":
[
]
}
Teraz musimy ustawić edytor do użycia przez Git, edytując .gitconfig
plik.
Twoja kopia tego użytkownika będzie znajdować się w ~/.gitconfig
. Otwórz ten plik i dodaj następujące wiersze. Pamiętaj, aby użyć prawidłowej 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
Jest --wait
to ważne, ponieważ zmusza Gita do czekania, aż zamkniesz plik, zanim będzie kontynuowany. --project
Linia jest ważne, aby powiedzieć Sublime Text który projekt, który chcesz otwarty gdy Git otwiera Sublime Text.
Zgodnie z powyższą odpowiedzią @ digitaldreamer ( https://stackoverflow.com/a/2596835/4561887 ) „ subl
można zastąpić pełną ścieżką do pliku wykonywalnego, ale [alias subl
] jest zwykle dostępny, gdy [Sublime jest] poprawnie zainstalowany”.
W przypadku systemu Windows najpierw przeczytaj instrukcje systemu Linux, aby uzyskać dodatkowe informacje. Teraz zrobimy coś prawie identycznego.
(OPCJONALNIE: utwórz subl
alias do użytku w Git Bash):
Otwórz edytor tekstu (na przykład Notepad, Notepad ++, Sublime Text, Geany itp.) I utwórz plik o nazwie „.bash_profile” w swoim katalogu domowym. Jego ścieżka będzie zatem: C:\Users\MY_USER_NAME\.bash_profile
. Zapisz w nim następujące elementy:
alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"
Spowoduje to utworzenie aliasu Git Bash subl
, którego możemy teraz używać w Git Bash dla Windows, aby łatwo otworzyć Sublime Text. Ten krok nie jest wymagany, ale jest przydatny do ogólnego użytku w Git Bash. Teraz możesz zadzwonić subl .
, na przykład, w Git Bash, aby otworzyć nowy projekt Sublime Text w bieżącym katalogu.
(OBOWIĄZKOWY):
Edytuj .gitconfig
plik znaleziony w katalogu domowym:, C:\Users\MY_USER_NAME\.gitconfig
dodając do niego następujące elementy. Zwróć uwagę na subtelne zmiany w powyższych instrukcjach dla systemu Linux:
[core]
editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
/
NIE, \
aby oddzielić foldery w nazwie ścieżki! (Dzięki VonC za pomoc w zobaczeniu tego ).subl
alias, który utworzyliśmy dla Git Bash powyżej, nie działa tutaj, więc nie możesz go używać tak, jak w przykładzie z Linuksem, zamiast tego musisz podać całą ścieżkę, jak pokazano powyżej.~
Symbol, jednak ma nadal działać, żeby dostać się do swojego katalogu domowego systemu Windows.Zapewnia to podświetlanie składni git commit
wiadomości, a także dostęp do innych poleceń Git, takich jak git blame
(których często używam w Sublime Text) lub git commit
(których nie używam w Sublime Text, ponieważ wolę wiersz poleceń dla ogólnego Git przepływ, jak wspomniałem w moich komentarzach poniżej tej odpowiedzi).
Aby zainstalować pakiet: Najpierw upewnij się, że zainstalowano „Kontrola pakietów”. Następnie naciśnij Ctrl+ Shift+ P(tak samo jak Narzędzia → Paleta poleceń) i wpisz całość lub część „Kontrola pakietów: zainstaluj pakiet”, a następnie naciśnij Enter. W wyświetlonym polu wyszukiwania wyszukaj pakiet „Git” i kliknij Entergo lub kliknij, aby automatycznie zainstalować.
Po zainstalowaniu Ctrl+ Shift+, Pa następnie wyszukiwanie „git” spowoduje wyświetlenie poleceń Git, których możesz teraz używać wewnętrznie w Sublime Text, takich jak git blame
.
Teraz, gdy git commit
na przykład zadzwonisz , jak zwykle z wiersza poleceń, Sublime Text otworzy się w .gitconfig.sublime-project
utworzonym powyżej, z ustawieniami tego projektu! Podczas wpisywania akapitu zauważysz, że rozciąga się on poza linijkę, którą ustawiliśmy, ponieważ funkcja miękkiego zawijania słów jest wyłączona. Aby wymusić twarde zawijanie za pomocą automatycznie wstawianych zwrotów na końcu każdej linii, umieść kursor na długiej linii, którą chcesz automatycznie zawinąć i naciśnij Alt+ Q. Teraz będzie twardo zawijać / twardo składać przy 72 znakach, co ustawiliśmy w powyższym parametrze „linijki” ustawień projektu.
Teraz zapisz komunikat zatwierdzenia za pomocą Ctrl+ Si wyjdź (aby uzupełnić git commit
) za pomocą Ctrl+ Shift+ W.
Gotowy!
Git Commit
typ składni. Możesz teraz pominąć niestandardowy krok „projekt podniosły tekst”.
sublime
z git
a także skorzystać trim_trailing_white_space_on_save
chcesz dodać alias do plastra dodając ponieważ usunięcie spływu białych przerw kosmiczne krosowe edycje gdzie jest to bardzo istotne. Można to osiągnąć za pomocą czegoś takiego:git config --global alias.patch "-c core.editor=vim add --patch"
Podobnie jak wszystkie inne aplikacje GUI, musisz uruchomić mvim z flagą wait.
git config --global core.editor "mvim --remote-wait"
--remote-wait-silent
aby uniknąć brzydkiego komunikatu o błędzie :)
Użytkownicy systemu Windows, którzy chcą korzystać z neovim z podsystemem Windows dla systemu Linux:
git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"
To nie jest głupie rozwiązanie, ponieważ nie obsługuje interaktywnego rebasingu (na przykład). Ulepszenia bardzo mile widziane!
Po prostu spróbuj EDITOR=vim git commit
.
Lub możesz ustawić swój EDYTOR na vim export EDITOR=vim
w swoim bashrc.
git config --global core.editor "open -n -W -a TextWrangler"
Upewnij się także, że ustawienie „TextWrangler> Preferencje> Aplikacja> Gdy TextWrangler staje się aktywny:” jest ustawione na „Nie rób nic”
Działa to dla mnie na OS X 10.11.4 z TextWrangler 5.0.2 ze sklepu Mac App Store.
Wyjaśnienie:
W -n środki otworzyć w nowej instancji.
W -W środki czekać do wyjść Nakładanie Przed użyciem zawartość pliku edytowanego jak popełnić wiadomość.
W -a TextWrangler środki użyć aplikacji TextWrangler aby otworzyć plik.
Więcej informacji znajdziesz man open
w aplikacji terminalu Mac.
git config --global core.editor "edit -w"
. Spowoduje to otwarcie komunikatu zatwierdzenia w bieżącej instancji i jak tylko zamkniesz tylko ten dokument komunikatu zatwierdzenia, zatwierdzenie będzie kontynuowane.
Podczas używania git-review
musiałem zmodyfikować sequence.editor
wartość, aby móc wykonywać interaktywne rebase ( git rebase -i -p
):
git config --global sequence.editor "gvim" # or whatever your prefer
gvim
wymagać: apt install vim-gtk
W systemie Mac OS X za pomocą TextEdit lub naturalnego edytora środowiska dla tekstu:
git config --global core.editor "open -W -n"
Tylko dlatego, że przyszedłem tutaj, szukając jednorazowego rozwiązania (w moim przypadku zwykle używam, vim
ale tym razem chciałem użyć kodu VS) dla pojedynczego polecenia, a inni też mogą chcieć wiedzieć:
GIT_EDITOR='code -w' git rebase -i …
Oto moja git
/ hub
wersja tylko dla kontekstu:
git version 2.24.2 (Apple Git-127)
hub version 2.14.1
Dla użytkowników IntelliJ
Podczas próby uruchomienia bazy danych otrzymywałem następujący błąd: „wskazówka: oczekiwanie na zamknięcie pliku przez edytor ... kod -n -w: kod: błąd komendy nie znaleziono: wystąpił problem z kodem edytora -północny zachód'.'
Ten sam błąd pojawił się, gdy próbowałem powiązać IntelliJ z Git:
Problem polegał na tym, że nie dodałem kodu polecenia do zmiennej środowiskowej PATH. I nie chciałem używać Visual Studio Code z mojego terminala. Dlatego pojawił się monit „Nie znaleziono polecenia”. Rozwiązałem to, usuwając
edytor = kod -n -w
z sekcji głównej w moim pliku .gitconfig. Git znów działał poprawnie.
Otworzy się edytor Textmate, gdy chcesz edytować swoje zatwierdzenia. Wymaga zainstalowania narzędzi wiersza poleceń textmate.
git config --global core.editor "mate -w"
git config --global core.editor "/usr/local/bin/mate -w"
Utwórz plik o nazwie „k.sh”, dodaj następujący tekst i umieść w katalogu domowym (~):
winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1
W wierszu polecenia git wpisz:
git config --global core.editor ~/k.sh