Какой замечательный вопрос! Вот путь, который я выбрал:
Шаг 0: прочитайте учебник по Emacs
Прочитайте Учебник Emacs прежде всего. Похоже, вы сделали это. Молодец! Тем не менее, для тех, кто придет к этому позже, это место, где можно начать путешествие Emacs. Есть много вводящих в заблуждение сообщений в блоге там. Они более усложняют вещи. Emacs делает это легко:
- Запустите Emacs
- Нажмите
<RET>
Вы также можете получить доступ к нему через Ctrl + h
t
, или C-h t
в Emacs нотации.
Учебное пособие знакомит с основными понятиями Emacs, разъясняет историческую терминологию и дает вам представление менее чем за 30 минут. Это также создает основу для следующего шага.
Шаг 1: Прочтите «Введение в программирование в Emacs Lisp»
Следующий шаг - прочитать Введение в программирование в Emacs Lisp . Я не могу рекомендовать эту книгу достаточно; это так хорошо написано! Он поставляется с большинством установок Emacs 1 . Просто нажмите C-h i
и выберите его из меню. Вы также можете перейти к нему напрямую через C-h i m Emacs Lisp Intro
.
Предисловие гласит:
Этот текст написан как элементарное введение для людей, которые не являются программистами.
Следует сказать «для людей, которые не являются программистами на Лиспе». Lisp немного отличается от других языков, поэтому его стоит прочитать, если вы не знакомы с Lisp. Автор имеет доступный стиль и просматривает множество примеров. Мне потребовалось около недели, чтобы проработать.
Шаг 1.5: Советы по разработке Emacs Lisp с Джоном Вигли
С конца 2015 года Джон является сопровождающим проекта Emacs . Sacha Чуа делает большое интервью с ним здесь , в котором Джон переходит основы Emacs, среды разработки и предоставляет много хороших советов.
Шаг 2: Прочитайте OPC (код другого человека)
2а. Прочитайте исходный код
Поскольку Emacs является «расширяемым, настраиваемым, самодокументируемым редактором отображения в реальном времени», весь исходный код включен. Научитесь использовать функции справки, C-h f
для функции и C-h v
для переменной. Всегда есть ссылка на исходный код:
2b. Читать все init.el
«S
Многие люди отслеживают свои init.el
файлы в Git или Mercurial. Ищите их. Одна хитрость заключается в том, чтобы щелкнуть профиль пользователя в StackOverflow, особенно emacs.stackexchange.com :
У них часто есть ссылки на их GitHub или персональный сайт:
Репо называются dotemacs
или dotfiles
встречаются довольно часто. Со временем вы получите представление о том, как выглядит хороший код и как выглядит плохой код. Вы также узнаете такие громкие имена, как Xah , Sasha Chua , binchen , Magnar Sveen , abo-abo и многие другие. Есть так много людей, чтобы учиться!
Шаг 3: Взломать Emacs
Испытайте себя, чтобы написать функциональность, которую вы хотите. Никогда не копируйте код вслепую; всегда находите время, чтобы понять это. Если вы этого не понимаете, не используйте его! Если вы потратите время на то, чтобы понять фрагмент кода, помимо изучения чего-то нового, вы часто будете думать о том, как улучшить его для своего конкретного случая использования. Это возможность взломать! В конце концов, это то, что вы init.el
для! Делайте ошибки, ломайте вещи, учитесь отлаживать. Вы обнаружите, что, поскольку Emacs написан на Elisp, разработка доставляет удовольствие.
Шаг 4: Задайте вопросы на emacs.stackexchange.com
Я обнаружил, что сообщество Emacs на StackExchange любит хороший вопрос по Elisp. Так что взломайте с уверенностью, что другие люди оценят ваши усилия по обучению.
Шаг 5: Ответьте на вопросы на emacs.stackexchange.com
Ничто не проясняет ваше понимание, как попытка что-то объяснить. Зайдя на главную страницу, вы также найдете ответы на вопросы, о которых никогда не знали.
Вывод
Со временем вы сможете быстрее находить решения и отвечать на вопросы других людей. Как и все программирование, это может быть неприятно. Однако не забудьте судить себя сегодня против себя вчера. Некоторые люди взламывали Emacs буквально 30 лет! Однако в большинстве случаев с Emacs приятно работать, а свобода, которую он дает, вдохновляет.
Счастливого взлома! :)
PS: проверить пакет зла .
1 Некоторые установки не идут с этим. Например, пользователи Debian должны устанавливать его отдельно. Это немного глупо , но хранится в несвободных репозиториях . Добавьте несвободное репо /etc/apt/sources.list
, добавив non-free
в конец каждой записи:
deb http://http.us.debian.org/debian stable main contrib non-free
Я рекомендую "Emacs Lisp Intro".
"Emacs Lisp Intro" может быть уже доступно в информационном формате в вашем Emacs. Попробуйте
C-h i m Emacs Lisp Intro RET
или оцените(info "(eintr) Top")
в Emacs.Если это не сработает, поищите в Интернете «Emacs Lisp Intro».
источник
Начните со страницы Emacs Wiki Изучите Emacs Lisp .
Не то чтобы эта страница сама научила вас Emacs Lisp. Вместо этого он будет указывать на учебные ресурсы - именно то, что вы ищете здесь , с вашим вопросом. Многие пользователи внесли свой вклад и редактировали его в течение нескольких лет. Это дает как преимущества, так и недостатки в блоге одного пользователя. Качество предложений там, конечно, различно из-за разнообразия входных данных.
Помимо этого - все, что здесь говорили другие, особенно начиная со встроенного документа Emacs:
Руководство по Elisp - в основном справочное пособие, но также есть хорошее руководство по использованию и концептуальная информация. Он встроен в Emacs:
C-h i
затем выберите руководство по Elisp.Введение в Emacs Lisp - пошаговое введение в Lisp и Emacs Lisp. Также встроен в Emacs и доступен из
C-h i
.Поскольку вы использовали Common Lisp, вам будет очень легко получить Emacs Lisp. Считай, что тебе повезло.
Если бы вы использовали Common Lisp (или Zeta Lisp или что-то еще) на машине Lisp, то опыт был бы весьма схожим. Вы можете думать о Emacs как о (среди прочего), отличной среде Lisp. Вы можете перейти от нуля до 60 в кратчайшие сроки, при обучении.
Повеселись!
источник
В качестве переподготовки по Lisp я настоятельно рекомендую первые три главы « Парадигм программирования искусственного интеллекта» Питера Норвигса . В них вы познакомитесь с Lisp в быстром и быстром темпе, который быстро вернет вас в нужное русло.
Для всех новичков есть COMMON LISP: Нежное Введение в Символьные Вычисления, которое учит вас тем же самым понятиям, но в намного более низком темпе.
Обе книги доступны онлайн, бесплатно.
После ознакомления с одним из вышеперечисленных вы можете прочитать все сообщения с тегами Elisp на nullprogram.com и просмотреть руководство по чтению на masteringemacs.org . Чтобы узнать о распространенных ошибках чтения главных вопросов здесь будет помощь. Для определенных проблем ищите либо этот сайт, розеттакод или ваш любимый поисковик.
После ознакомления с основами руководства Info обычно отвечают на большинство оставшихся вопросов, которые возникают при взломе Emacs.
источник
Поскольку у вас есть опыт работы с Common Lisp, и вы «не знакомы с основами», нет смысла терять в «Введение в программирование в Emacs Lisp».
То, что вы можете сделать прямо сейчас (у меня нет опыта в CL, и он работал для меня), это:
1) найдите режим, который вы используете, и попробуйте добавить функции, вы найдете помощь в Справочнике по Emacs Lisp
2) напишите свой собственный файл с вашими простыми функциями, и здесь используйте Emacs Lisp Reference
Список help-gnu-emacs чрезвычайно полезен.
источник
Я действительно не думаю, что вам нужно читать что-то конкретное на emacs lisp. Не секрет, что если вы хотите что-то сделать в Emacs, скорее всего, вам просто нужно найти правильную команду или кто-то уже написал код, и теперь он находится где-то на вики-странице, или на github, или был превращен в плагин. , Просто скопировав этот код и прочитав его , вы узнаете значительную долю Eiscs lisp к тому времени, когда вы даже будете несколько удовлетворены своими .emacs.
Если вы хотите получить некоторые идеи о том, как настроить Emacs, пользовательские конфигурации могут быть хорошим источником мудрости. Выбранный список таких конфигураций вы можете найти здесь . Хотя, действительно, ваше собственное видение работает лучше, и посещение .emacs других людей обычно оправдано только тогда, когда вы хотите получить ответы на некоторые вопросы (например, как мне структурировать мой код / пакеты?) Или скопировать некоторый код для какой-то конкретной вашей цели.
Просмотр MELPA заставил меня установить и попробовать, может быть, дюжину пакетов.
Если вы собираетесь разрабатывать плагин, я обнаружил, что чтение кода какого-либо конкретного плагина по вашему вкусу может помочь вам начать работу довольно быстро.
Так как вы используете vi, посмотрите режим зла , он отлично работает для меня. Я бы также порекомендовал helm с
helm-apropos
(или просто,apropos
если вы не хотитеhelm
) командой, чтобы облегчить ваше путешествие.Поэтому я советую сразу же добраться до пункта настройки, и вы узнаете все, что вам нужно, на ходу. Тем более, что вы взламывали lisp раньше, давно или нет, и потому что изучение elisp, насколько я могу судить, для вас является средством для достижения цели, а именно для настройки emacs.
источник
Трасса Elisp на exercism.io - это еще и увлекательный способ улучшить свои навыки. Упражнения в большей степени сосредоточены на elisp, чем на Emacs, но охватывают широкий спектр основ, таких как регулярные выражения, структуры данных, математика и т. Д.
источник
Мне кажется, что ответ Лорен Ипсум достаточно хорошо освещает это.
https://emacs.stackexchange.com/a/47320/21433
Я бы просто добавил, что я предполагаю, что вы знаете основы Lisp. Это поможет вам, но в этом нет необходимости (я вернусь к этому.)
Один из способов обучения - просто взломать или изменить существующий режим / расширение. Я узнал об этом еще в 93 году, взломав файл языкового режима Ada. Это был один из самых забавных событий, которые я получил в колледже.
Таким образом, вы можете сделать это с языком по вашему выбору, скажем, режимом Java, режимом Lisp или даже файлом режима Elisp.
Измените это, добавьте макросы и т. Д. Вот как я это сделал.
источник