Zmienić domyślny edytor plików otwieranych w terminalu? (np. ustaw na TextEdit / Coda / Textmate)

110

Czy istnieje sposób, aby pliki otwierane do edycji w terminalu były zamiast tego otwierane w Textedit?

Na przykład, gdy polecenie może otworzyć plik do edycji (np. git commit), Zamiast otwierać ten plik w vimie lub emacsie, otworzy się w Textedit (lub może w innej wybranej aplikacji do edycji tekstu, takiej jak Coda lub Sublime).

I jako pytanie dodatkowe, czy istnieje sposób, aby specjalnie skonfigurować git, aby automatycznie otwierał plik utworzony po uruchomieniu git commitw edytorze z katalogu aplikacji?

Diogenes
źródło
1
Tak, używam OSX (10.6.4).
Diogenes
Najlepsze rozwiązanie, które znalazłem, to użycie duti-> apple.stackexchange.com/a/123954/58507
Gomino
dla systemu Mac OS 10.10+ powyższe rozwiązania nie będą działać. Wypróbuj to apple.stackexchange.com/questions/123833/ ...
Rishikesh Shukla

Odpowiedzi:

137

Większość programów sprawdzi $EDITORzmienną środowiskową, więc możesz ustawić ją jako ścieżkę do TextEdit w twoim bashrc. Git również tego użyje.

Jak to zrobić:

  • Dodaj do swojego ~/.bashrcpliku:
    export EDITOR="/Applications/TextEdit.app/Contents/MacOS/TextEdit"
  • lub po prostu wpisz następujące polecenie w swoim terminalu:
    echo "export EDITOR=\"/Applications/TextEdit.app/Contents/MacOS/TextEdit\"" >> ~/.bashrc

Jeśli używasz zsh, użyj ~/.zshrczamiast ~/.bashrc.

alternatywny
źródło
20
Doskonale, to wystarczy. Uruchomiłem również to polecenie, aby upewnić się, że git działa tak, jak powinienem. To git config --global --unset-all core.editorwtedy git config --global --add core.editor "open -W -n".
Diogenes,
Czy używasz innej powłoki?
alternatywnie
5
w moim przypadku używam zshwięc oczywiście muszę zaktualizować .zshrcplik konfiguracyjny.
Malloc
3
użyj cudzysłowów, jeśli ścieżka do twojego edytora zawiera spacje, np. "echo "export EDITOR=\"/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl\"" >> ~/.bashrc" Być może będziesz musiał przeładować swój .bashrc za pomocą:source ~/.bashrc
Mars Redwyne
Dzięki, przez to ustawiłem edytor nano jako domyślny. Oto jak dodać go do OSX: http://hints.macworld.com/article.php?story=20021017065800302
Micer
28

Użyj git config --global core.editor mate -wlub, git config --global core.editor openjak sugeruje @dmckee w komentarzach.

Źródła: http://git-scm.com/docs/git-config

Ionuț G. Stan
źródło
3
... a ustawienie go na używanie openoznacza, że ​​automatycznie otrzymujesz domyślną wyszukiwarkę. Zatem zmiany w wyszukiwarce są propagowane w sposób naturalny.
dmckee --- ex-moderator kitten
4
openużywa Launch Services do określenia typu pliku, głównie na podstawie jego rozszerzenia. Jeśli plik ma nieznane rozszerzenie, jego otwarcie nie powiedzie się. Ogólnie rzecz biorąc, twój edytor CLI powinien być czymś, co zakłada pliki tekstowe ...
Gordon Davisson
Niektóre (bardzo) wyraźne instrukcje byłyby bardzo pomocne ... odniesienie jest niezwykle zwięzłe.
Diogenes
2
@Diogenes: Zobacz moją odpowiedź w innym poście, jeśli nadal potrzebujesz bardziej wyraźnej pomocy: stackoverflow.com/questions/6435246/ ...
X-Istence
4
Lepiej git config --global core.editor "open -W"(w przeciwnym razie pojawi się Aborting commit due to empty commit message.błąd).
rsenna
18

Dla OS X i Sublime Text

Udostępnij subl.

Włóż to ~/.bash_profile

[[ -s ~/.bashrc ]] && source ~/.bashrc

Włóż to ~/.bashrc

export EDITOR=subl
Kirk Strobeck
źródło
Okazało się, że to nie działa poprawnie z chsh. Plik zostanie otwarty, ale wszelkie zmiany zostaną utracone. Musiałem użyć chsh -s /bin/zshdo ręcznej zmiany powłok.
Cryptc
9

Dla każdego, kto przyjedzie tutaj w 2018 roku:

  • przejdź do iTerm -> Preferencje -> Profile -> Zaawansowane -> Historia semantyczna
  • z rozwijanego menu wybierz Otwórz za pomocą edytora iz prawego menu wybierz preferowany edytor
Alexander
źródło
5

Ustaw swój edytor tak, aby wskazywał na ten program:

/Applications/TextEdit.app/Contents/MacOS/TextEdit

W przypadku SVN powinieneś ustawić SVN_EDITORzmienną środowiskową na:

$ export SVN_EDITOR=/Applications/TextEdit.app/Contents/MacOS/TextEdit

A potem, gdy spróbujesz coś zrobić, uruchomi się TextEdit.

Pablo Santa Cruz
źródło
1
Wolałbym użyć /usr/bin/open, ponieważ to użyje domyślnej wyszukiwarki, niezależnie od tego , na co ją ustawisz.
dmckee --- ex-moderator kitten
Jak byś zrobił to samo dla gita?
Diogenes,
Pierwszym z nich jest ustawienie EDITOR = na to, ale co mam wpisać w drugim wierszu?
Użytkownik
0

Jeśli chcesz, aby edytor współpracował z operacjami git, ustawienie $EDITORzmiennej środowiskowej może nie wystarczyć, przynajmniej nie w przypadku Sublime - np. Jeśli chcesz wykonać rebase, powie tylko, że rebase się powiódł, ale wygrałeś ' nie masz szansy edytować pliku w jakikolwiek sposób, git po prostu go natychmiast zamknie:

git rebase -i HEAD~
Successfully rebased and updated refs/heads/master.

Jeśli chcesz, aby Sublime działał poprawnie z gitem, powinieneś skonfigurować go za pomocą:

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

Przyszedłem tutaj, szukając tego i znalazłem rozwiązanie w tym skrócie na githubie .

mrapacz
źródło
0

ustaw Sublime Text 3 jako domyślny edytor tekstu: (wymagane ponowne uruchomienie)

defaults write com.apple.LaunchServices LSHandlers -array-add "{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.sublimetext.3;}"

uczyń sublime, a potem domyślnym edytorem tekstu git git config --global core.editor "subl -W"

Ashutosh Mittal
źródło