Emacs-as-OS: przestarzały? [Zamknięte]

22

Próbując osiągnąć status przynajmniej początkującego z tak legendarnym edytorem, pisałem w Emacsie przez ostatnie dwa miesiące. Staram się zachować otwarte serce, ale ciągle nie zgadzam się z jednym podstawowym wyborem: Emacs pozwala użytkownikom nigdy nie wychodzić. W świecie 2010 po prostu uważam, że każda funkcja Emacsa jest beznadziejnie związana z dedykowanym oprogramowaniem:

  • Nigdy nie użyłbym jego wbudowanej przeglądarki; Chrome ma przed sobą lata.
  • Nigdy nie użyłbym jego diodowej funkcji; Path Finder (Mac OS X) odpowiada moim potrzebom.
  • Nigdy nie użyłbym wbudowanego e-maila; interfejs internetowy Gmaila ma bardziej odpowiednie funkcje, takie jak Priorytety.
  • Itp.

Jasne, czasami mogę zanurzyć się w Emacsie, aby użyć wyrażeń regularnych itp. Do jednego z powyższych zadań, ale poza wyrażeniami regularnymi naprawdę nie widzę powodu, aby kiedykolwiek dotykać tych funkcji bocznych. Jestem całkowicie nowicjuszem, ale mam silne przeczucie, że Emacs-as-an-OS jest przestarzały.

Eksperci Emacsa, czy uważasz, że wybór Emacsa jako kompleksowego środowiska jest właściwym wyborem na 2010 rok i przyszłość? Czy są jakieś szczególne funkcje peryferyjne, które są jeszcze w swoim czasie lub wyprzedzają w porównaniu do alternatyw?

AlcubierreDrive
źródło
9
Czy to naprawdę pytanie? Wygląda na to, że już zdecydowałeś.
Larry Coleman,
5
@Emacs jest naprawdę fajny dla rozwoju gcc + gdb w środowisku Unix. Przyjemnie jest też pisać LaTeX.
20
Właśnie dlatego Emacs ma wbudowanego psychiatrę.
Tim Post
3
@Tim, Mx tetris jest znacznie bardziej zabawny.
2
Całkowicie cię rozumiem ... Używałem vi od lat i poświęciłem trochę czasu na naukę Emacsa ... i doszedłem do wniosku, że oba nie pasują do moich potrzeb ... do programowania, wolę nowoczesne IDE (Eclipse) i do prostej edycji / skryptowania tekstu, nano jest w porządku.
Oliver Weiler

Odpowiedzi:

14

Używam emacsa przez ostatnie 10 lat (od i do) i mogę tylko powiedzieć, że masz całkowitą rację . Kiedyś korzystałem z gnus i przeglądarki w3, ale najwyraźniej nie są już do tego zdolni w porównaniu do dedykowanych programów. Ale oczywiście nie można uruchomić Chrome w trybie tekstowym, dlatego wygrywa emacs. I nawet tam wolę używać do tego rysi / elinks lub mutt.

Emacs-the-programmers-editor również stracił kontakt. Edycja tekstu jest w porządku, ale kiedy piszę kod , szukam funkcji takich jak: definicja goto, automatyczne uzupełnianie, refaktoryzacja, wskazówki dotyczące składni, dokumentacja parametrów itp. (Myślę o Eclipse). Wypróbowałem kilka trybów emacsa, ale nigdy nie udało mi się go poprawnie uruchomić. I nie, nie chcę uczyć się elisp, dziękuję.

Ponadto emacs tak naprawdę nie rozumie semantyki kodu. Jest to boleśnie oczywiste, gdy kodujesz w pliku zawierającym wiele języków, takich jak html z javascript i php czy coś takiego. Po prostu się psuje. W tym celu wolę raczej użyć dowolnego innego edytora (notepad ++ lub cokolwiek innego), który działa znacznie lepiej.

Martin Wickman
źródło
5
Spośród rzeczy, które wymieniasz, Emacs faktycznie ma „definicję goto” (przy użyciu etagów), „automatyczne uzupełnianie” ( autocomplete.el, tak myślę), wskazówki dotyczące składni / dokumentację parametrów (w zależności od języka). Jedyny, o którym wspominasz, że nie obsługuje AFAIK, to automatyczne refaktoryzowanie, które nie jest ani konieczne, ani przydatne dla wszystkich języków. Wiele trybów jest jednak okropnych; istnieje i obsługuje PHP i języki mieszane, ale jest kiepski (ponieważ jest zbyt wolny, chyba że jestem na komputerze). Dam ci również tę samą radę, co każdemu współpracownikowi: jeśli nie chcesz się uczyć Lisp, nie używaj Emacsa, nic ci to nie da.
Inaimathi,
8
Zgoda; Emacs nie jest systemem operacyjnym. Nie zgadzam się z tym, że „Emacs-the-programmers-editor również stracił kontakt”. Jest to szczególnie nierozsądny argument, biorąc pod uwagę, że odmawiasz nauki Elisp, ponieważ większość zalet edytora Emacs-the-programmers pochodzi z zastosowania dostosowań. Nie sprzeciwiłbym się: „Nie używam Emacsa, ponieważ nie mam ochoty uczyć się Lisp”, ale sprawiasz, że brzmi to tak, jakbyś umyślnie ignorował narzędzie, które wpływa na jego sprawność. Jest to na równi ze mną, mówiąc: „Eclipse jest do bani, ponieważ nie ma wsparcia dla PHP. I nie chcę się uczyć instalowania wtyczek, dziękuję”.
Inaimathi,
1
@Inaimathi Nie musisz uczyć się elisp (ani żadnego innego języka), aby móc prawidłowo używać zaćmienia. Instalowanie wtyczek też tego nie wymaga.
Martin Wickman,
2
@Martin - Nie ma wbudowanej obsługi PHP (lub nie miał, kiedy go używałem); w tym celu musisz zainstalować wtyczkę. Cytowane oświadczenie jest odpowiednikiem „[Editor] jest do bani, ponieważ nie ma [funkcji, którą faktycznie ma, ale trzeba ją włączyć], ale tak naprawdę nie mam ochoty uczyć się [rzeczy, które musisz zrobić, aby aby to umożliwić] ”, a moim celem było to, że jest to nierozsądny argument.
Inaimathi,
3
@Inaimathi: Jeśli chodzi o refaktoryzację, szukałem programu do automatycznego refaktoryzacji w C ++, a jeden z niewielu, które znalazłem, był w elisp. Jeśli powiesz, że „emacs nie obsługuje X”, najprawdopodobniej się mylisz.
David Thornley,
19

Wybierz odpowiednie narzędzie do pracy.

Spróbuj uruchomić Chrome lub Path Finder przez połączenie ssh - tutaj będziesz potrzebować alternatywnych narzędzi, a Emacs został zaprojektowany do działania w terminalu.


źródło
Dobra uwaga na temat ssh.
AlcubierreDrive,
3
przekierowanie x11?
TheLQ,
7
Ile osób faktycznie korzysta z przeglądarki internetowej za pośrednictwem połączenia ssh?
compman
1
@compman, tak. Może być bardzo przydatny do pobierania plików ze stron internetowych.
1
OS X ma VNC, po prostu tuneluj połączenie VNC przez SSH i nie musisz się martwić, że OS X nie używa X11.
Lie Ryan,
8

Nawet nie korzystam z wbudowanego terapeuty, ale używam Emacsa i podoba mi się to, nie z powodu jego kompleksowej natury, ale ponieważ jest nieskończenie konfigurowalny i potężny jako edytor tekstu. Znam też wiele kombinacji klawiszy. Pomyślna edycja tekstu polega na naciskaniu klawiszy.

Jeśli chcesz dzięki temu zwiększyć wydajność, Steve Yegge ma kilka dobrych wskazówek.

glenatron
źródło
Zdecydowanie nie zgadzam się z podejściem Stevesa do ponownego wiązania ton kluczy, aby Emacs się zachował. Poznaj standardowe powiązania klawiszy i użyj swoich .emacs, aby poprawić ich zachowanieu.
Chodzi przede wszystkim o ergonomię - nie mówi, że jest problem ze standardowymi powiązaniami jako powiązaniami, mówi, że jest problem z tym, gdzie są klawisze na klawiaturze i że jeśli chcesz, aby były łatwe w użyciu , musisz znaleźć klawisze do tego celu, które nie będą wymagały od ciebie plątania palców w najdalszych rogach klawiatury. Widzę w tym sens, ale ogranicza cię to, jeśli często zmieniasz maszynę, ponieważ potrzebujesz innego zestawu wspomnień mięśniowych lub spędzasz wieki, zmieniając konfigurację każdej używanej maszyny.
glenatron
5

Emacs nigdy nie był przeznaczony na rynek masowy. Jest przeznaczony do efektywnego użytku przez osoby, które poświęciły czas, aby dowiedzieć się, jak to działa. To powiedziawszy, jeden rozmiar nie pasuje do wszystkich, więc możesz nie lubić emacsa, nawet jeśli dowiesz się więcej na ten temat.

EDYCJA: Moje dwie ulubione funkcje emacsa oprócz edycji tekstu to tryb powłoki i gnus. Po frustracji grupami dyskusyjnymi Google z powodu całego spamu zarejestrowałem się w Eternal September i nauczyłem się korzystać z gnus. Poruszanie się po wiadomościach jest znacznie szybsze i przechodzą tylko sporadyczne wysyłanie spamu, a pozbycie się go jest kwestią jednego naciśnięcia klawisza. Tryb powłoki jest szczególnie przydatny w pracy, ponieważ kopiowanie / wklejanie jest wydajniejsze niż w wierszu poleceń DOS.

Larry Coleman
źródło
Nie odrzucam edytora tekstu jako przestarzałego; Zgadzam się, jest bardzo wydajny, kiedy się przyzwyczaisz. Moje pytanie dotyczy wartości wyboru projektu, że powinieneś być w stanie zrobić wszystko i wszystko bez wychodzenia z Emacsa. Czy są jakieś szczególne funkcje peryferyjne, które są nadal świetne, czy masz wgląd w historię niegdyś wspaniałych funkcji peryferyjnych, które zostały teraz przekroczone?
AlcubierreDrive
1
Po przeczytaniu twoich komentarzy zredagowałem tę odrzuconą jako przestarzałą sekcję. Nie używam emacsa do wszystkiego, ale naprawdę podoba mi się tryb powłoki i gnus.
Larry Coleman,
Słodkie! W odpowiedzi na Wasze opinie dodałem nową drugą połowę. Twój komentarz odpowiada na to pytanie, więc +1
AlcubierreDrive
1
Także możliwość zrobienia wszystkiego w emacsie miała o wiele większy sens, powiedzmy w 1994 roku, kiedy komputery były znacznie wolniejsze niż obecnie. Od czasu do czasu używam dired, jeśli już jestem w emacsie i często używam powłoki. Możliwość robienia wielu rzeczy w moim edytorze lub przynajmniej bez konieczności poruszania się myszką to dla mnie wygrana. Możesz mieć inny gust (na pewnym poziomie to naprawdę kwestia gustu)
Zachary K
2

Zawsze traktowałem Emacsa jako platformę, a nie rozwiązanie gotowe. Istnieje wiele pakietów, które powielają funkcjonalność lub cel i od Ciebie zależy, czy spełnią twoje potrzeby, czy nie.

To jest również powód, dla którego wiele rzeczy jest nieaktualnych. Większość osób (które i tak spotkałem) używających Emacsa nie używa go do czytania wiadomości e-mail ani przeglądania Internetu. Jednak ciężko mi znaleźć inny edytor, który ma

  • jako zaawansowane możliwości zdalnej edycji
  • swobodne tworzenie i edycja makr wbudowanych
  • głębokość i szerokość dostępnych rozszerzeń / pakietów

Od ponad dekady jest moim ulubionym redaktorem do tworzenia oprogramowania i edytowania tekstu.

Co najlepsze, nie muszę dotykać myszy podczas korzystania z Emacsa.

dietbuddha
źródło
2

Emacs może być dla Ciebie systemem operacyjnym, jeśli chcesz nauczyć się Lisp i napisać własne funkcje, które odpowiadają Twoim potrzebom.

Ale obecnie możesz znaleźć wszystko, czego potrzebujesz, w innych narzędziach stworzonych przez innych wspaniałych ludzi. Ci ludzie stworzyli te narzędzia, ponieważ czuli, że ich potrzebują, tak jak ty, który z nich będziesz korzystać. Ponieważ wiele z nich jest typu open source, istnieje społeczność, która sprawi, że będą one coraz lepsze wraz ze wszystkimi potrzebnymi funkcjami.

Próba ulepszenia Emacsa jest trudna, ponieważ musisz nauczyć się Lisp. Nawet istniejące wtyczki stają się coraz starsze. Weźmy na przykład tryby językowe, popularne języki, takie jak JS i PHP, nie są obsługiwane nawet w przypadku podświetlania składni. Najlepszy tryb, jaki można dla nich znaleźć, po prostu nie wystarczy.

Emacs to świetne narzędzie we właściwych rękach i do właściwych zadań. Są jednak lepsze narzędzia do określonych zadań i zdecydowanie powinieneś ich użyć.

Jose Faeti
źródło
1

Nie chcę rozpoczynać świętej wojny, tak naprawdę był taki czas, kiedy używałem emacsa co drugi dzień (jeden dzień vim, jeden dzień emacs). Z emacsem nie ma nic złego, to naprawdę świetne narzędzie. Świetne, świetne narzędzie.

Ale jako prawdziwy vim'er zawsze byłem trochę sfrustrowany faktem, że wielu emacserrów próbuje używać emacsa dosłownie wszędzie, do dosłownie wszystkich zadań.

Czytanie poczty, sprawdzanie bazy danych, czytanie plików pdf - to najbardziej niewinne zadania, które widziałem jako „emacsificated”.

Tak więc, jak dla mnie, istnieją główne obszary używania emacsa:

  1. Edycja tekstu To niesamowite, super narzędzie. Uwierz mi, po długim użyciu vima lub emacsa całkowicie przegapisz jego funkcje w najbardziej zaawansowanych IDE.

  2. IDE. Cóż, można to zrobić. Co więcej, może w jakiś sposób konkurować z trybami IDE. Ale faktem jest, że aby był naprawdę konkurencyjny, powinieneś dużo inwestować. Powinieneś spróbować skompletować wiele różnych skryptów. Powinieneś nawet napisać własne fragmenty kodu. Szczerze mówiąc, nie zrobiłbym tego.

  3. Inne zadania, w większości egzotyczne, a nawet ezoteryczne. Grając w tetris i tak dalej. Lepiej nie.

shabunc
źródło
1
Jako długoletni użytkownik zarówno emacsa, jak i vi (ponad 20 lat doświadczenia z obydwoma, także około 1 roku korzystania z eda jako mojego głównego edytora), czasami uważam, że emacs jest bliski najwyższej jakości „Mam powtarzający się kod , pozwól edytorowi automatycznie go wygenerować ”(zamiast, powiedzmy, napisać kolejny fragment kodu, a następnie skompilować go i uruchomić, aby wygenerować kod).
Vatine
0

Gdzieś w mojej kolekcji rzeczy jestem pewien, że moja żona żałuje, że nie wyrzucę, mam kopię Emacsa na taśmie QIC-40. Zapłaciłem 50 $, aby je zdobyć.

Nie mogłem # @% # $ # $% @ ^ #% # znieść, więc nie mogę teraz znieść. Nie twierdzę, że dla niektórych nie jest to świetny edytor, ale dla mnie… po prostu przeszkadza bardziej niż cokolwiek innego. Pierwotnym założeniem było obejście kluczy do butelek po coli i zrobiło to bardzo dobrze.

Jeśli uruchamiasz program, jakikolwiek program, robisz to z nadzieją, że zwiększy (lub przynajmniej nie utrudni) produktywności. Jeśli to nie działa, nie używaj go.

Zaufaj mi, to nie problem.

Tim Post
źródło
2
„To ważny artefakt, który należy do muzeum!”
1
„Jeśli to nie działa dla ciebie, nie używaj go” oznacza odwołanie do podmiotowości, dlatego „nie jesteś problemem” jest sprzecznością.
Jon Purdy,