Jak mogę ustawić Sublime Text jako domyślny edytor Git?

216

Mam ustawienia Sublime Text 2 jako problemu core.editorz git.

Przeczytałem każdy post, w którym znalazłem informacje na temat problemu, ale nadal nic dla mnie nie działa. Korzystam z systemu Windows.

Zrobiłem:

git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe'"

i próbowałem tego z różnymi argumentami, takimi jak -m. Kiedy otwieram moje .gitconfig, oto co tam jest:

[user]
    name = Spencer Moran
    email = [email protected]
[core]
    editor = 'C:/Program Files/Sublime Text 2/sublime_text.exe'

Jeśli pójdę do Git i napiszę:

README.markdown --edit

plik README otwiera się w Notatniku, a nie w Sublime Text.

Czy ktoś ma pojęcie, co robię źle lub jak mogę to naprawić?

Spencer Moran
źródło
11
Jeśli piszesz tylko README.markdown --edit w cmd.exe, gitw ogóle nie jest zaangażowany. Zmień swoje powiązania plików w systemie Windows, jeśli chcesz, aby to działało.
Mat.
1
Ogólne informacje dla większości poniższych odpowiedzi: -woznacza „Poczekaj na zamknięcie pliku przed powrotem” i -noznacza „Otwórz nowe okno”. Źródło: docs.sublimetext.info/en/latest/command_line/command_line.html
MarredCheese
Moje ulubione ustawienia używania Sublime Text 3 jako mojego edytora git: stackoverflow.com/questions/2596805/...
Gabriel Staples

Odpowiedzi:

343

Windows

Sublime Text 2 (kompilacja 2181)

Najnowsza kompilacja 2181 właśnie dodała obsługę -wargumentu wiersza poleceń (czekaj). Poniższa konfiguracja pozwoli ST2 działać jako domyślny edytor git w systemie Windows. Umożliwi to gitowi otwarcie ST2 dla komunikatów zatwierdzania i tym podobnych.

git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w"

Sublime Text 3 (kompilacja 3065)

Sublime Text 3 (Build 3065) dodał subl.exepomocnika wiersza poleceń. Użyj subl.exe -hdla dostępnych opcji. Mam hot_exit: truei remember_open_files: trueustawiłem w moich ustawieniach użytkownika Sublime Text. Znalazłem następujące informacje, aby git config działał dobrze dla mnie.

git config --global core.editor "'c:/program files/sublime text 3/subl.exe' -w"

Mac i Linux

Ustaw Sublime jako edytor dla Git, wpisując następujące polecenie w terminalu:

git config --global core.editor "subl -n -w"


W tej konfiguracji Git nowa karta jest otwarta w moim edytorze. Edytuję komunikat zatwierdzenia, zapisuję kartę ( Ctrl+ S) i zamykam ją ( Ctrl+ W).

Git poczeka, aż karta zostanie zamknięta, aby kontynuować pracę.

jrotello
źródło
14
Osobiście, oprócz ustawienia mojego edytora, jak sugeruje @jrotello, moje doświadczenie ST2 / git znacznie się poprawiło, gdy dodałem następujące opcje do moich ustawień ST2: {„hot_exit”: false, „Remember_open_files”: false, „close_windows_when_empty”: true }
Sandy
6
@Phrogz: Udało mi się uruchomić go w moim .gitconfig z następującą składnią:editor = 'C:\\Program Files\\Sublime Text 2\\sublime_text.exe' -w
awayken
4
Dla mnie otworzy się nowa karta, jeśli wysublimowany tekst jest już otwarty. Zamknięcie karty nie pozwala gitowi wiedzieć, że zostało zrobione. Próbowałem - wielu instancji, ale wydaje się, że nic to nie robi.
David Faivre
5
zwróć uwagę, że kiedy hot_exitnastąpi fałsz i zgasną światła, rozpocznie się cała niezapisana praca !!!!!!!!!!
Jürgen Paul
4
Właściwie, używając „-n -w”, git nie wydaje się być w stanie powiedzieć, że okno wysublimowanego tekstu jest zamknięte (jeśli przynajmniej mam otwarte okno wysublimowane). „-w --multiinstance” nadal wydaje się działać najlepiej, chociaż w nowym wysublimowanym oknie wszystkie istniejące zakładki są ponownie otwierane. Wygląda na to, że można je bezpiecznie zignorować.
David Faivre
94

Możesz użyć tego polecenia na komputerach Mac i Linux:

git config --global core.editor "subl -n -w"
sfufoet
źródło
26
W rzeczywistości obecnie na Macu zalecana jest dowiązanie symboliczne subl do gdzieś w $ PATH i ustawienie edytora na „subl -w”. Jest w oficjalnych dokumentach.
Sandy
8
Dokumenty, o których mówiłem, to: sublimetext.com/docs/2/osx_command_line.html
Sandy
8
Dokumenty mówią, że należy używać subl -w, ale jeśli masz otwarte inne karty, nie będzie to działać poprawnie. Uważam, że subl -n -wdziała lepiej, ponieważ otwiera nowe okno.
iano
1
@iano, jeśli to zrobię, czy powinienem zamknąć kartę lub zamknąć okno, aby zatwierdzić? zamknij okno nie działało
Karthik T
Otwiera to dla mnie pusty dokument w sublime, dopóki nie wykonam tych instrukcji: sublimetext.com/docs/3/osx_command_line.html, ale zmieniłem ścieżkę z Sublime Text.app na Sublime Text 2.app
Evanss
14

W przypadku systemu Mac OS X w pliku ~ / .gitconfig w sekcji [core] musiałem umieścić ten kod, aby rozwiązać problem po mojej stronie.

editor = /Applications/Sublime\\ Text.app/Contents/SharedSupport/bin/subl  -n -w

To było wtedy, gdy subl działał dobrze, ale git nie mógł uzyskać do niego dostępu. I wyświetlał te błędy

subl -n -w: subl: command not found
error: There was a problem with the editor 'subl -n -w'.
Ahmad Awais
źródło
11

W przypadku komputerów Mac i Sublime Text 3 :

Jeśli git config --global core.editor "subl -n -w"nie działa, użyj tego git configpolecenia:

$ git config --global core.editor "'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl' -n -w"

Uwaga: nie zawiera uciekających ukośników odwrotnych.

Nu-Bo
źródło
7

co zadziałało dla mnie w cygwin / zsh:

w / usr / local / bin utwórz plik subl_git

#!/bin/bash
/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -w -n `cygpath -w $@`

w gitconfig:

editor = /usr/local/bin/subl_git
meeech
źródło
przepraszam, moje pytanie dla początkujących, ale jak uzyskać dostęp do gitconfig? Czy to różni się od biegania git config --list? Z góry dziękuję.
Ryan Chase
to tylko je wymienia. musisz edytować swój gitconfig
meeech
Miałem spację w folderze użytkownika, więc użyłem zmodyfikowanego -"/cygdrive/c/Program Files/Sublime Text 3/subl.exe" -w -n "`cygpath -d -w "$@"`
Mark
6

Z Sublime Text 2 i następującą konfiguracją, jeśli nic się nie stanie po zamknięciu pliku komentarza git commit:

git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w"

Jeśli polecenie git commit nie kończy się po zamknięciu pliku komentarza COMMIT_EDITMSG w Sublime, to prawdopodobnie odkryłem, że używasz CMD w trybie administratora (i masz Wysublimowany Tekst otwarty już w trybie innym niż admin). Miałem ten sam problem i to działało na mnie, kiedy zacząłem moją CMD w trybie normalnym.

Ps: chciałem tylko odpowiedzieć na problem wskazany przez Davida w komentarzach przyjętej odpowiedzi, ale nie mogłem opublikować komentarza, ponieważ jestem tutaj nowy ... więc zrobiłem nową odpowiedź, ponieważ myślę, że to może być przydatne dla niektórych osób napotykających problem.

Francois
źródło
Dzięki za wskazówkę. Znasz rozwiązanie?
Scott Wegner
@ ScottWegner Po prostu uruchom CMD w trybie innym niż administrator, aby obejść ten problem. Nie musisz być w trybie administratora, aby uruchamiać polecenia git. Jeśli jednak naprawdę musisz być w trybie administracyjnym, nie znalazłem rozwiązania tego problemu, oprócz otwarcia innej instancji CMD.
Francois
dzięki za kontynuację. Skończyłem z podniesionymi powłokami, ponieważ moje środowisko programistyczne wymaga trybu administracyjnego dla innych narzędzi (Visual Studio), dlatego uruchamiam całą moją powłokę z podniesionym poziomem uprawnień. Myślę, że zbadam tylko podniesienie potrzebnych narzędzi.
Scott Wegner
1
@ ScottWegner Osobiście używam Cmdera (pełna wersja zawiera nawet msysgit). Pozwala na wiele instancji CMD, bash lub innych powłok, w unikalnym oknie z zakładkami. Niektóre karty można uruchomić w trybie administratora, a inne w trybie normalnym. Zwykle mam jedną kartę poświęconą git i inne karty dla moich innych narzędzi. Być może chciałbyś spróbować. To świetne narzędzie!
Francois
re: tryb administracyjny - myślę, że sztuczka polega na tym, że twoja powłoka i wzniosłe muszą korzystać z tych samych uprawnień. tzn. jeśli używasz terminala na podwyższeniu, a wzniosłość jest również podniesiona, działa to płynnie.
Joseph Evensen
5

Właśnie udało mi się to za pomocą PowerShell (narzędzia wiersza poleceń dla systemu Windows, które mogą być również używane jako domyślny wiersz poleceń w GithubforWindows)

Po prostu utwórz folder „WindowsPowerShell” na „C: \ Users \% username% \ My Documents”. Następnie utwórz plik o nazwie „profile.ps1”. Upewnij się, że masz prawidłowe rozszerzenie pliku .ps1, a nie .txt. w pliku profile.ps1 wstaw ten wiersz, aby ustawić polecenie aliasu:

Set-Alias subl 'c:\program files\sublime text 2\sublime_text.exe'

Upewnij się, że podniosły katalog na twoim komputerze jest poprawny. Możesz również zobaczyć szczegóły konfiguracji tutaj .

Teraz mogę edytować pliki za pomocą Sublime Text 2 za pomocą polecenia PowerShell, wpisując:

subl filename

Mam nadzieję, że jest to przydatne ...

rwinzhang
źródło
4
Aby otworzyć bieżący folder w Sublime Text 2, możesz użyć: subl .
awayken
W przypadku Sublime Text 3 użyj nowego subl.exe:Set-Alias subl 'c:\program files\sublime text 3\subl.exe'
wtjones
3

Tego wieczoru napotkałem ten sam problem z edytorem git w systemie Windows i wreszcie go mam.

Musisz ustawić ścieżkę edytora za pomocą składni bash i używając formatu DOS 8.3, aby uniknąć spacji :

To nie działa (dla mnie):

git config --global core.editor "C://Program files/Sublime Text/sublime_text.exe"

To robi:

git config --global core.editor /C/PROGRA~1/SUBLIME~1/sublime_text.exe

Możesz uzyskać nazwę DOS 8.3 dla katalogu z dir / x

Diego Buendia
źródło
1

Z jakiegoś powodu po prostu z tym walczyłem, żaden z powyższych przykładów nie działał dla mnie. To było jednak moje rozwiązanie:

 git config --global core.editor "'c:/<path to sublime>/sublime_text.exe' -w $*"

W szczególności potrzebujesz ' 'całej ścieżki i $*końca argumentów " ".

justin.m. chase
źródło
1

Jeśli jesteś użytkownikiem Maca, oto jak to zrobić:

git config --global core.editor '/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'
mainframer
źródło
1

cóż, miałem problem z wywołaniem notatnika ++ z gitbash, nawet po ustawieniu go jako mojego core.editor.

rozwiązałem ten problem, dodając poniższy wiersz do mojego pliku .bashrc w katalogu instalacyjnym gitbash.

alias npp='winpty "C:/Program Files (x86)/Notepad++/notepad++.exe"'

więc mogę wywołać notepad ++ z aliasem „npp”. Myślę, że to może ci pomóc, jeśli zmienisz katalog na odpowiedni edytor, którego chcesz użyć.

OLATOMID
źródło
1

W przypadku użytkowników MAC mogę powiedzieć, że dla Sublime użyj:

Najpierw sprawdź plik .gitconfig za pomocą polecenia:

  1. cd ~
  2. ls -la
  3. cat .gitconfig

Teraz można dodać tę konfigurację:

git config --global core.editor "subl -n -wl1"

Gdzie l1powiedzą, żeby zacząć od linii 1.

bvmCoder
źródło
0

W przypadku systemu Windows 7 stwierdziłem, że działa następujące rozwiązanie:

git config --global core.editor "C:/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -n -w"
tscott1
źródło
0

W systemie Windows, jeśli instalujesz git, możesz wybrać inny edytor i podać następujący wiersz poleceń. C: \ Program Files \ Sublime Text 3 \ sublime_text.exe -w Obraz instalatora

Xavier John
źródło
0

Nie widziałem żadnych aktualizacji dotyczących systemu Windows, które pozwalają instalatorowi Git aktywnie wybierać Sublime Text jako domyślny edytor tekstu bez całej siły i oryginalności kodów zastępczych ... Wzniosły tekst pokazany jako opcja w (ponownej) instalacji Gita

Angelfirenze
źródło
0

Na MacOS (Mojave) poniżej działa dla mnie Sublime 3 :

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

Pratik Patel
źródło