Cóż za świetne pytanie! Oto ścieżka, którą podjąłem:
Krok 0: Przeczytaj samouczek Emacsa
Przeczytaj samouczek Emacsa zanim cokolwiek innego. Wygląda na to, że to zrobiłeś. Dobrze na tobie! Jednak dla każdego, kto przyjdzie do tego w późniejszym czasie, jest to miejsce na rozpoczęcie podróży Emacsem. Istnieje wiele wprowadzających w błąd postów na blogu. Oni nadmiernie komplikują rzeczy. Emacs ułatwia:
- Uruchom Emacsa
- naciśnij
<RET>
Możesz również uzyskać do niego dostęp za pośrednictwem Ctrl + h
t
lub C-h t
w notacji Emacs.
Samouczek przedstawia podstawowe pojęcia dotyczące Emacsa, wyjaśnia terminologię historyczną i umożliwia rozpoczęcie pracy w mniej niż 30 minut. To także stanowi scenę do następnego kroku.
Krok 1: Przeczytaj „Wprowadzenie do programowania w Emacs Lisp”
Następnym krokiem jest przeczytanie Wstępu do programowania w Emacs Lisp . Nie mogę wystarczająco polecić tej książki; jest tak dobrze napisane! Jest dostarczany z większością instalacji Emacsa 1 . Po prostu naciśnij C-h i
i wybierz go z menu. Możesz także przejść bezpośrednio do niego C-h i m Emacs Lisp Intro
.
Przedmowa stwierdza:
Ten tekst został napisany jako elementarne wprowadzenie dla osób niebędących programistami.
Powinno powiedzieć „dla osób, które nie są programistami Lisp”. Lisp różni się nieco od innych języków, więc warto go przeczytać, jeśli nie znasz Lisp. Autor ma przystępny styl i podaje wiele przykładów. Przepracowanie zajęło mi około tygodnia.
Krok 1.5: Wskazówki dotyczące rozwoju Emacsa Lispa z Johnem Wiegleyem
Pod koniec 2015 r. John jest opiekunem projektu Emacs . Sacha Chua przeprowadza z nim świetny wywiad , w którym John omawia podstawy Emacsa Lispa, środowiska programistycznego, i udziela wielu świetnych porad.
Krok 2: Przeczytaj OPC (kod innej osoby)
2a. Przeczytaj kod źródłowy
Ponieważ Emacs jest „rozszerzalnym, konfigurowalnym, samodokumentującym się edytorem wyświetlania w czasie rzeczywistym”, cały kod źródłowy jest dołączony. Naucz się korzystać z funkcji pomocy, C-h f
funkcji i C-h v
zmiennej. Zawsze jest link do kodu źródłowego:
2b. Przeczytaj wszystkie init.el
„s
Wiele osób śledzi swoje init.el
pliki w Git lub Mercurial. Poszukaj ich. Jedną sztuczką jest kliknięcie profilu osoby na StackOverflow, szczególnie emacs.stackexchange.com :
Często mają linki do swojej witryny GitHub lub osobistej witryny:
Repo nazywane dotemacs
lub dotfiles
są dość powszechne. Z czasem zrozumiesz, jak wygląda dobry kod i jak wygląda zły kod. Dowiesz się także wielkich nazwisk, takich jak Xah , Sasha Chua , binchen , Magnar Sveen , abo-abo i wielu innych. Jest tak wiele osób, z których można się uczyć!
Krok 3: Włam się do Emacsa
Rzuć sobie wyzwanie, aby napisać pożądaną funkcjonalność. Nigdy nie kopiuj kodu na ślepo; zawsze znajdź czas, żeby to zrozumieć. Jeśli tego nie rozumiesz, nie używaj go! Kiedy poświęcasz czas na zrozumienie fragmentu kodu, oprócz uczenia się czegoś nowego, często zastanawiasz się nad sposobami ulepszenia go w konkretnym przypadku użycia. To okazja do włamania! W końcu po to init.el
jest twój ! Popełniaj błędy, niszcz rzeczy, ucz się debugowania. Przekonasz się, że ponieważ Emacs jest napisany w Elisp, rozwój jest rozkoszą.
Krok 4: Zadaj pytanie na emacs.stackexchange.com
Odkryłem, że społeczność Emacsa na StackExchange uwielbia dobre pytanie Elisp. Więc hakuj z przekonaniem, że inni docenią twoje wysiłki w nauce.
Krok 5: Odpowiedz na pytania na stronie emacs.stackexchange.com
Nic nie wyjaśnia twojego zrozumienia, jak próba wyjaśnienia czegoś. Trollując stronę główną, znajdziesz także odpowiedzi na pytania, o których nie wiedziałeś, że masz.
Wniosek
Z czasem będziesz w stanie szybciej generować rozwiązania i odpowiadać na pytania innych osób. Jak każde programowanie, może być frustrujące. Pamiętaj jednak, aby wczoraj osądzić się przeciwko sobie. Niektórzy hakują Emacsa dosłownie od 30 lat! Jednak przez większość czasu przekonasz się, że Emacs jest przyjemnością w pracy, a wolność, którą daje, jest inspirująca.
Miłego hakowania! :)
PS: Sprawdź zło pakietu .
1 Niektóre instalacje nie są z tym związane. Na przykład użytkownicy Debiana muszą zainstalować go osobno. To trochę głupie , ale jest przechowywane w niewolnych repozytoriach . Dodaj niewolne repozytorium /etc/apt/sources.list
, dołączając non-free
na końcu każdego wpisu:
deb http://http.us.debian.org/debian stable main contrib non-free
Polecam „Emacs Lisp Intro”.
„Emacs Lisp Intro” może być już dostępny w formacie informacyjnym w twoim Emacsie. Spróbuj
C-h i m Emacs Lisp Intro RET
lub oceń(info "(eintr) Top")
w Emacs.Jeśli to się nie powiedzie, wyszukaj w Internecie „Emacs Lisp Intro”.
źródło
Zacznij od strony Wiki Emacsa Dowiedz się Emacs Lisp .
Nie sama ta strona nauczy Cię Emacsa Lispa. Zamiast tego będzie wskazywać zasoby edukacyjne - dokładnie to, czego szukasz tutaj , z twoim pytaniem. Wielu użytkowników przyczyniło się do tego i edytowało go przez lata. To ma zarówno zalety, jak i wady w blogu jednego użytkownika. Jakość sugestii jest oczywiście różna ze względu na różnorodność danych wejściowych.
Poza tym - wszystko, co powiedzieli inni tutaj, szczególnie począwszy od wbudowanego dokumentu Emacsa:
Podręcznik Elisp - głównie odniesienie, ale także kilka dobrych wskazówek dotyczących użytkowania i informacji koncepcyjnych. Jest wbudowany w Emacsa:
C-h i
następnie wybierz instrukcję Elisp.The Emacs Lisp Intro - wprowadzenie krok po kroku do Lisp i Emacs Lisp. Również wbudowany w Emacsa i dostępny z
C-h i
.Ponieważ użyłeś Common Lisp, bardzo łatwo będzie podnieść Emacsa Lispa. Uważaj się za szczęściarza.
Jeśli używałbyś Common Lisp (lub Zeta Lisp lub cokolwiek innego) na maszynie Lisp, to doświadczenie byłoby całkiem podobne. Możesz myśleć o Emacsie jako (między innymi) świetnym środowisku Lisp. Podczas nauki możesz szybko przejść od zera do 60.
Baw się dobrze!
źródło
Jako odświeżenie Lisp gorąco polecam pierwsze trzy rozdziały Paradygmatu programowania sztucznej inteligencji Petera Norvigsa . Dają ci świetne i szybkie (re) wprowadzenie do Lisp, dzięki czemu szybko wrócisz na właściwe tory.
Dla wszystkich noobów jest WSPÓLNY LISP: Delikatne wprowadzenie do obliczeń symbolicznych, które uczy tych samych pojęć, ale w znacznie niższym tempie.
Obie książki są dostępne online, za darmo.
Po przejściu jednego z powyższych, możesz przeczytać wszystkie posty oznaczone Elisp na nullprogram.com i przejrzeć przewodnik do czytania na masteringemacs.org . Aby dowiedzieć się o typowych pułapkach, pomocne będzie przeczytanie najważniejszych pytań tutaj . W przypadku konkretnych problemów wyszukaj tę stronę, kod rozety lub ulubioną wyszukiwarkę.
Po zapoznaniu się z podstawami podręczniki informacyjne zazwyczaj odpowiedzą na większość pozostałych pytań, które pojawiają się podczas hakowania na Emacsie.
źródło
Ponieważ masz doświadczenie w Common Lisp i „przekroczyłeś podstawy”, nie ma sensu gubić się w „Wprowadzenie do programowania w Emacs Lisp”.
To, co możesz zrobić od razu (nie mam doświadczenia w CL i działało to dla mnie) to:
1) znajdź używany tryb i spróbuj dodać funkcje, znajdziesz pomoc w Emacs Lisp Reference
2) napisz własny plik z własnymi prostymi funkcjami, tutaj ponownie użyj Emacs Lisp Reference
Lista help-gnu-emacs jest niezwykle pomocna.
źródło
Naprawdę nie sądzę, że musisz przeczytać coś konkretnego na temat emacs lisp. Nie jest tajemnicą, że jeśli chcesz coś zrobić w Emacsie, jest szansa, że po prostu musisz znaleźć odpowiednie polecenie lub ktoś już napisał kod i teraz znajduje się gdzieś na stronie wiki lub github, lub został przekształcony we wtyczkę . Wystarczy skopiować i wkleić ten kod, a następnie go przeczytać , nauczysz się sporo wypaczać Emacsa, dopóki nie będziesz w jakiś sposób zadowolony z .emacs.
Jeśli chcesz dowiedzieć się, jak dostosować Emacsa, niestandardowe konfiguracje innych osób mogą być dobrym źródłem mądrości. Wybraną listę takich konfiguracji można znaleźć tutaj . Chociaż tak naprawdę posiadanie własnej wizji działa lepiej, a odwiedzanie cudzych plików .emacs jest zwykle uzasadnione tylko wtedy, gdy chcesz uzyskać odpowiedzi na niektóre pytania [np. Jak ustrukturyzować mój kod / pakiety?] Lub jakiś kod skopiowany dla określonego celu.
Przeglądanie MELPA skłoniło mnie do zainstalowania i wypróbowania może kilkunastu pakietów.
Jeśli masz zamiar opracować wtyczkę, odkryłem, że czytanie kodu konkretnej wtyczki, która ci się podoba, może zacząć dość szybko.
Ponieważ używasz vi, sprawdź tryb zła , to zadziałało dla mnie świetnie. Poleciłbym również ster z
helm-apropos
(lub po prostuapropos
jeśli nie chceszhelm
) poleceniem, aby ułatwić ci podróż.Radzę więc od razu przejść do punktu dostosowywania, a dowiesz się wszystkiego, czego potrzebujesz w podróży. Zwłaszcza, że zhakowałeś seplenienie, dawno temu lub nie, a ponieważ nauka elisp jest, o ile wiem, środkiem do osiągnięcia celu, jakim jest dostosowanie emacsa.
źródło
Ścieżka Elisp na Exercism.io to także świetny sposób na poprawę swoich umiejętności. Ćwiczenia są bardziej skoncentrowane na elisp niż na Emacsie, ale obejmie dobry zakres podstaw, takich jak wyrażenia regularne, struktury danych, matematyka itp.
źródło
Wydaje mi się, że odpowiedź Lorena Ipsuma dość dobrze to obejmuje.
https://emacs.stackexchange.com/a/47320/21433
Chciałbym tylko dodać, że zakładam, że znasz podstawy Lisp. To by ci pomogło, ale nie jest konieczne (wrócę do tego.)
Jednym ze sposobów nauki jest po prostu zhakowanie lub zmodyfikowanie istniejącego trybu / rozszerzenia. Nauczyłem się tego w 93 roku, hakując plik trybu języka Ady. To było jedno z najbardziej zabawnych doświadczeń, jakie miałem na studiach.
Możesz to zrobić z wybranym językiem, powiedzmy, trybem Java, trybem Lisp, a nawet plikiem w trybie Elisp.
Zmień to, dodaj makra itp. Tak to zrobiłem.
źródło