Jakie są wszystkie sposoby uruchamiania powłoki z emacsa wewnątrz i jakie są ich różne właściwości?

25

Znam co najmniej cztery możliwości:

  • eshell
  • semestr
  • ansi-term
  • muszla

Jaka jest pełna lista narzędzi wbudowanych w emacsa do uruchamiania powłoki oraz jakie oferują zalety i wady?

Trevoke
źródło
1
to ciekawy przykład pytania z dużej listy . Wygląda na to, że niektórym osobom na stronie (w tym dwójce z nas) podoba się tego rodzaju pytanie, podczas gdy inni naprawdę nie. Wyniki mogą być bardzo zmienne w zależności od odpowiedzi moderatora. Rozpocząłem dyskusję na temat meta na ten temat, odwołując się do tego pytania jako przykładu meta.emacs.stackexchange.com/questions/305/…
Joe Corneli

Odpowiedzi:

31

M-x shelljest standardowym interfejsem do powłoki systemu operacyjnego. W systemie Linux nazywa się bash (lub cokolwiek domyślnego), w systemie Windows - cmd.exe. M-x shelljest najczęściej używany.

M-x eshelljest powłoką napisaną całkowicie w emacs lisp. Ma składnię podobną do bash, ale jest dobrze zintegrowany z elisp. np. możesz sprawdzić kod elisp tutaj. Eshell jest szczególnie przydatny w systemie Windows, gdy nie masz zainstalowanego programu Cygwin itp.

M-x termi M-x ansi-termsą emulacjami terminalnymi, podobnie jak gnome-terminal, xterm itp. Główną różnicą M-x shelljest to, że klucze w eshelllub shell, nadal są kluczami emacs, ale w termklawiszach emacs nie działa. Ale zaletą jest to, że możesz uruchomić ssh, vim lub dowolne polecenie oparte na interfejsie tekstowym, które nie będzie działać w M-x eshelllub M-x shell.

termi ansi-termkiedyś były to różne pakiety, ale teraz są to 2 różne komendy w tym samym pliku term.el. Nie korzystałem z nich zbyt często. Bardziej szczegółową odpowiedź na ten temat znajdziesz na wiki emacs .

Na moim blogu jest więcej informacji .

Xah Lee
źródło
1
„teraz są 2 różne polecenia tego samego pliku”. Może tam być brakujące słowo lub dwa.
Faheem Mitha,
2
Dobra odpowiedź. Przydałby się również link do wspomnianej strony wiki.
Malabarba
3
„Najczęściej używana jest powłoka Mx” - chciałbym, aby była to cytat lub jakieś dane, ponieważ wcale nie jestem przekonany, że to prawda. Ponadto nie dodaje nic merytorycznego do odpowiedzi. W przeciwnym razie dobra odpowiedź.
shosti
2
Shosti, nie mam twardych statystyk. zgodnie z nagłówkiem pliku powłoka to 1988. eshell to 1999. term.el to także 1988. eshell jest używany głównie przez hakerów elisp, więc jest to znacznie mniej niż użytkownicy emacsa. To pozostawia skorupkę kontra termin. Myślę, że możemy porównać ich wzmiankę w książkach Emacsa, np. 3 lub więcej starych O'Reilly. Lub porównanie Google ... ale z doświadczenia związanego ze społecznością emacsa, myślę, że termin / ansi-term jest znacznie rzadziej używany.
Xah Lee,