Tylna część okładki (zachęcająca do kupna książki)
Stało się.
Dlaczego wieloletni Vimowiec napisał sudo apt install emacs?
Dlaczego nie wycofał się po zobaczeniu skrótów klawiaturowych, z których C-x M-c M-butterfly by był najprostszym?
Co nim kierowało?
I najważniejsze -- czy nawróci się na Jedyną Słuszną Drogę, pokutując poprzez sudo apt purge emacs?
Akt I: zwątpienie
Z 10 lat korzystam z Vima. Nie chciałem się angażować w kolejny edytor ze stromą krzywą uczenia. Wojna edytorowa zaowocowała w niejedno zestawienie porównawcze i dla mnie wniosek był prosty: skoro czuję się komfortowo z Vimem, niech tak zostanie.
I nie byłoby tego wpisu, gdybym nie szukał lepszego zestawu narzędzi do trzymania listy zadań, spotkań czy notatek okraszonych okazyjną flagą TODO.
Zastanowiłem się nad wyglądem mojego przepływu pracy.
Spisałem wymagania i preferencje.
Przeszukałem internet w poszukiwaniu odpowiednich narzędzi i je porównałem.
Wniosek był dość prosty: użyję org-mode i będę zadowolony.
Org is a mode for keeping notes, maintaining TODO lists, and project planning with a fast and effective plain-text markup language.
(Źródło.)
Innymi słowy: dostaję możliwość pisania notatek, w ramach których mogę jednym skrótem klawiaturowym dodać TODO.
Mogę dodać zadania w stylu „odkurz mieszkanie co najwyżej raz na 2 dni, ale co najmniej raz na 5 dni”.
Mogę wygenerować rozkład dnia czy tygodnia.
Narzędzie jest klawiaturocentryczne, więc nie odrywa od pisania.
A dodatkowo format danych jest tekstowy i jak najbardziej human-readable.
Przez lata przeczytałem wiele dobrych opinii fanatyków Emacsa, opinii Vimowców, którzy poszli tą ścieżką, a także komentarze osób, którym wejście w świat org-mode nie udał się.
Dlatego musiałem spróbować.
Akt II: upadek
Co się stało dalej?
- Zainstalowałem Emacsa;
- Przeszedłem wbudowany tutorial. Dwa razy;
- Wyznawca Kościoła Emacsa przekonał mnie, że jeśli Emacs, to z GUI (nie rzucajcie jeszcze kamieniami, proszę);
- Zacząłem korzystać z Emacsa jako głównego edytora;
- Poznałem
evil-modeoraz kilka innych paczek; - Zacząłem korzystać z pamięci mięśniowej i odstawiać duckduckgowe cheat sheety.
Najważniejsze z powyższego jest użycie evil-mode.
W największym skrócie jest to Vim w Emacsie.
Wiele aplikacji ma skróty klawiaturowe w stylu Vima, głównie nawigację za pomocą h/j/k/l.
Większość z tych „emulatorów” jest niepełna i w niespodziewanych momentach zachowuje się inaczej, niż byśmy oczekiwali.
I tutaj evil-mode błyszczy.
Jestem skłonny stwierdzić, że to najlepsza emulacja Vima jaka istnieje.
A nie oszukujmy się: edycja tekstu w czystym Vimie jest zdecydowanie wygodniejsza niż w czystym Emacsie.
Doprowadziło to do sytuacji, w której mogę korzystać z org-mode pisząc jak w Vimie, zatem bez walki z własnymi nawykami dot. skrótów klawiaturowych.
Co oprócz org-mode?
Wygodniejsza modyfikacja edytora. Czy jest na tym świecie ktokolwiek, kto z przyjemnością pisze w VimL (Vim script?)? Szczerze wątpię. Za to pisanie w jednym z dialektów Lispa wywołuje uśmiech u niejednego programisty. U mnie na pewno :)
Ledwie poznałem podstawowe możliwości magita (emacsowy interfejs do Gita), a już widzę, że ma potencjał.
Czy to będzie pierwszy raz, gdy porzucę zarządzanie repozytoriami z poziomu konsoli?
Być może i bynajmniej nie jest mi z tego powodu smutno.
Emacs posiada również wiele paczek: od wyspecjalizowanych trybów pod konkretne rodzaje plików czy języki programowania, poprzez integracje z narzędziami do statycznej analizy kodu, aż do przeglądarek internetowych. Odnoszę również wrażenie, że te dodatki lepiej się integrują z edytorem (tudzież ze sobą nawzajem) niż w vimowym świecie.
Akt III: przyszłość
Czy mam zamiar kontynuować eksperyment? Tak.
Czy brakuje mi czegoś z Vima? Co najwyżej krótszej nazwy.
Czy polecam przesiadkę? Jeszcze nie wiem. W moim przypadku -- póki co -- sprawdza się wyśmienicie.
Wiele osób się śmieje, że Emacs to świetny system operacyjny, ale brakuje mu porządnego edytora tekstu.
Pierwsza część jest solidnie podparta liczbą i jakością paczek do mnóstwa rzeczy.
A co do drugiej części…
Tutaj właśnie wkracza evil-mode.
Posłowie
(Post został napisany przy użyciu GNU Emacs 25.2.2 wraz z markdown-mode tudzież evil-mode, zaś dodany do repozytorium przy użyciu magita. Grafomańską wenę zawdzięczam św. IGNUcemu.)