Ну, справедливости ради стоит отметить, что это весьма гиковая штука.
Раньше любил разбираться в потрохах систем. Делать сборки и прочее. Я гик, который немного потерялся в повседневности. А иногда хочется пару часиков поразбираться. От этого отдельный кайф, когда делаешь и получается.
Прям сложно описать своими словами, но это ощущение, когда в сложной структуре разобрался и понял как оно устроено, ни с чем не сравнимо.
Концепция проста:
- Текстовый редактор
- Интерпретатор языка lisp
Перемешиваем и получаем emacs
Три подсказки для освоения материалов:
- Чтобы узнать имя команды которую вы вызываете по нажатию какого либо сочетания клавиш есть “Ctrl-h k”
- Чтобы узнать наоборот по имени функции что она делает и по к какому сочетанию забиндена “Ctrl-h f”
- Есть ещё переменные которые влияют на поведение emacs, о них можно почитать с помощью “Ctrl-h v”
Но сначала конечно же надо научиться пакеты устанавливать…
- Чтобы пройти Туториал выбрать его на начальном экране или нажав “Ctrl-h t”. Именно с него надо все-таки начинать, в том числе на русском для желающих. Пакеты ставить сильно позже надо учиться) Можно прерваться в любом месте во время прохождения - он запоминает позицию.
- Если не знаем/забыли что мы ищем, функцию или переменную, можно нажать “Ctrl-h o” и начать набирать примерное название. Позднее, когда поставим какой-нибудь Helm, то вообще сказка, так как можно будет набирать по-наитию представляя примерно как бы ЭТО могло называться.
Я просто 10 лет пользовался vim, а потом узнал про org-mode, взял емакс, поставил туда evil-mode и стал пользоваться им вместо vim.
А пару недель назад, после 7 лет использования, убрал evil-mode.
Но мой способ использования емакса далеко не типичный. Многие из моих настроек являются результатом каких-то экспериментов и размышлений. Прямо сейчас я экспериментирую с системой “ведения проектов”, которая бы позволила мне с одной стороны “делать то, что интересно”, а с другой стороны была бы связана с цеттелькастеном. Вроде бы есть готовые пакеты для этого (delve, zetteldesk), но в данный момент мне больше нравится написать пару своих функций, чем доустанавливать новых зависимостей.
Ну, я и тем, и другим увлекаюсь
Пользуюсь ванильной сборкой, довольно давно. У меня к Emacs был долгий путь, раза три или четыре “подходил к снаряду”. Проходил встроенный учебник и где-то по пути почему-то “отваливался”, сносил все к чертям и убеждал себя что никогда больше. Через какое-то время в голове снова просыпались тараканы: “Ну ты ж программист! Крутые парни пользуются Emacs! Ну, или Vim!” (но Vim - это уже совсем другая история) и я снова ставил Emacs и запускал учебник. Удалось осилить благодаря случайно нашедшемуся сайту https://alexott.net. В итоге втянулся и начались python-mode, org-mode, literate programming, свои конфиги и прочие прелести. Вишенкой на торте стали org-roam и org-roam-ui (граф шикарен!).
Правда, в последнее время заметил, что из-за сворачивания заголовков в org-mode и возможности запихивать несколько заметок в один файл начал злоупотреблять большими портянками текста.
- Почему емакс?
- Какие преимущества вы видите для себя?
Универсальный редактор под большинство моих нужд. И Python, и консоль, и заметочник с задачником/ежедневником в org-mode. Как редактор для LaTeX использую, когда методички для обучения собачек собираю. Еще б работу с базами данных и графики удобно настроить - выходил бы из него, наверное, только Jura с почтой почитать
- Если бы начинали изучать емакс сейчас с нуля, то с чего бы начали (понимая уже всю систему)?
Мне очень помогли статьи на https://alexott.net и видео на ютубе от Дмитрия Бушенко. Болезненные по началу сочетания клавиш осваиваются постоянной практикой, как слепая печать, через некоторое время становятся привычными и уже не напрягают.
Хотела написать много и развесисто, но лучше как-нибудь, чем тянуть дальше
Почему емакс
Потому что максимальная свобода и потому что орг-мод
Про свободу… Моя дорога к емаксу началась, кажется, с момента, когда со мной поделились ультраэдитом, и я поняла, что в текстовом редакторе можно много интересного, в том числе запускать всякое внешнее из него. Потом было что-то ещё, точно был notetab, точно был geany, был kate… В общем, предыстория долгая но вот как-то пришла к состоянию, что дальше что-то искать, вроде, ни к чему, тут не стесняет ничего. :))
(К слову, сборки пробовала, но вот это как раз стесняет, не могу…)
А орг-мод - это даже раньше тексты, чем планировщик. Я была очень счастлива возможности держать всю кухню текста в том же файле, что и собственно текст, и даже вперемешку с ним. Так, что вот тут я пишу, имея под рукой всякие свои черновые мысли и комментарии, в том числе не очень политкорректно выраженные, а вот я скомандовала и получила на выходе чистый текст, где всё “прилично”, можно сдавать :))
Потом уже всё прочее
Если бы начинала с нуля
Делала бы примерно то же самое. Может, подсунула бы себе нынешние записи, у меня набралось сколько-то… Но в целом - так же сначала начать что-то актуальное делать, а потом разбираться, как оно тут на самом деле и что тут ещё можно
А ты помнишь свою первую заметку? Как она выглядела тогда и что сейчас заметки у тебя представляют? Насколько сильный прогресс?
Я пока только раздумываю на тем чтобы погрузиться снова в емакс, потому что все говорят об этой волшебной свободе, что прям аж интересно как оно работает по настроящему ) Человеку, который на обсидиане уже больше двух лет.
Самую первую не помню, конечно.
Но вот, например, энной давности. Из того, что нашла сейчас не-втянутого в более поздние записи, но остающегося для меня небессмысленным.
Мысль - в тексте, кончающемся более-менее счастливо, герои проходят
путь “от ада к раю”, и даже если текст заканчивается полным поражением
всего, есть или “потерянный”, хотя бы относительный, “рай”, или “рай
недосягаемый”. В любом случае представление о том, что “ад”, а что
воплощенная мечта, мы получаем. В каких-то книгах весь этот путь
совершается в первую очередь в душе героя/ев, в каких-то они достигают цели
в результате походов и приключений. Спрашивается, если в многих книгах
существенным шагом героя к “обретению рая” оказывается уход из нашего мира
куда-то и обретается всё уже там, не следует ли это понимать, как
несуществование искомого рая в пределах нашего мира? И заодно, не
оказывается ли жизнь здесь с точки зрения энного количества народа пустой и
практически бессмысленной, т.е. не оказывается ли она тем самым адом?
Или в другом роде (тип “записная книжка писателя”):
Утро. Небо светилось, как это иногда бывает в пасмурную погоду. Лужи, прозрачные и чистые, отражали небо. Дул пронизывающий ветер. По ветру скользила ослепительная чайка.
Ars Poetica и «Барабан из камня» де Линта - мелкая учебная работа, насколько помню, 2009 года. Как раз довольно ранние времена освоения линуха и емакса для меня.
Бывает и то, на что смотрю вообще с недоумением, типа, божечки, что это, зачем это вообще было? Кое-что таки поудаляла при разгребании файлов от былых заметочников, кое-что мирно лежит в “архиве”
Исходно были вообще файлы с разделителями =====, по какой-то теме или просто, скажем, названный mysli.txt. Позже, как раз с освоением орг-мода - с разделением на заголовки, потом и с простановкой дат нередко.
Была попытка делать записи в латехе - до сих пор не полностью перенесенная в новые записи “личная энциклопедия всего”, я к тому времени уже нашла слово hypomnemata, так и назвала. Но там в какой-то момент оказалось, что для меня слишком много, чтоб получалось ориентироваться, односторонних ссылок не хватало и до индексов там и тогда я тоже не додумалась…
Вот цеттель в org-roam читать выборочно гораздо удобнее. Общая структура не мешает вообще. А отдельный файл вполне можно делать настолько большим, насколько он удобен, и сворачивать заголовки по умолчанию.
Как раз, к слову про cheatsheet, мой файлик про кнопочки: кнопочки емакса. Тут весьма длинная страница, на которую я, признаться, давно не лазила. Но может, тоже повод дополнить и перекомпоновать будет
Какой сексуальненьки cheatsheet. Надобы закрепить в начальном сообщении, для всех страждущих.
Сравнить файл первый в оргмод и текущий, хотелось для того чтобы понять всю серьезность прогресса в освоении техники работы с заметочником. У меня, например первые заметки с обсе выглядят, скаже честно бедновато, а вот то что уже сейчас прям иногда гордость берет с мыслью о том, это что я все такое сам сделал?
Скил работы в обсидиане явно вырос.
А-а, поняла
Ну, первый - это были просто заголовки звёздочками Первое, что осваивается из разметки, даа.
Так-то ощущение гордости за то, что у меня кое-что получается, ловила неоднократно, но это не чисто разметка.
- Когда научилась слать себе автоматически письмо, в котором была актуальная орг-модная адженда плюс подборка фортунок из набора файлов с интересностями. Это было про использование емакса в batch-mode из скрипта.
- Когда немного уяснила тему Literate programming. Переделала конфиг емакса и ещё у меня стали иначе выглядеть всякие мои заметки по программированию. Первые были - набор файлов с комментариями в них. А то, что потом - наоборот, орг-модный файл со вставками кода, преимущественно выполняемого при желании прямо в процессе чтения, в том числе связно несколько фрагментов, а также танглящегося в отдельный файл, который можно запускать.
- Ну, и вот цифровой сад. Который я публикую прямо из емакса одной командой, и, понятно, приложила некоторое количество усилий, чтоб так стало, в том числе уяснила немного запуск скриптиков из емакса - так сказать, обратное к первой истории.
Из возможностей разметки я использую сильно не всё.
Использую, понятно, заголовки, комментарии (как в отдельной строке, так и закомментировать раздел файла), src-блоки и ещё пару типов, HIDDEN-drawers и реже ещё какие-нибудь, шифрование отдельных разделов, некоторые настройки экспорта и подобных свойств, таблички (обычно без формул), есть пара шаблонов для добавления заметок (но это больше про места добавления, чем про форму), сноски, всё ещё не очень освоила использование библиографий, но какой-то первый минимум уже есть…
Но тут как… иногда чего-то хочется, тогда можно перечитывать доки в поисках, копать, какие есть дополнения, докапываться до людей (потому что временами в документации нужное написано, хорошо написано, но почему-то в упор не видно, пока кто-нибудь не ткнёт, мол, “вот же, смотри!”). Иногда, наоборот, либо при перечитывании доков, либо при случайном чтении про чей-то опыт обнаружится, что ого! а можно ещё вот так?!! Хочу! :))
Вот, у Aragaer, например, позаимствовала собирание адженды с участием заметочных файлов так. чтоб вся та тысяча с лишним файликов, где заданий нет, не перебиралась, время-ресурсы не тратились, а перебиралось только нужное Или вот он же недавно упомянул delve - и я смотрю, там, кажется, есть то, что мне повысит удобство пользования :))
В Emacs + org-mode пришел из Vim’а, как вимер. Долгое время жил и работал в Vim + консоль (сначала по-необходимости, потом стало просто удобно). По роду деятельности я программер. Однажды мне подвернулась хорошая книга по Vim’у, в результате стал пользоваться им правильно и переучился на слепую десятипальцевую печать.
В какой-то момент захотел уйти из чистой консоли во что-то IDE-образное, но чтобы оно как-то творчески включало в себя стиль редактирования из Vim. Плагин такой есть во многих редакторах для программирования, но это было не то. Еще проблема: то ли из-за пережитого когда-то выгорания, то ли еще из-за чего, но классический вид IDE мне скучен. Честно пытался слезать с Vim на православные IDE (как у людей), но каждый раз откатывался обратно.
В конце-концов, читая статью на Хабре, решил потрогать Emacs с его плагином evil-mode. А еще в статье говорилось о надстройке Spacemacs, сделанной вимерами для вимеров.
Первым подходом к снаряду и стал Spacemacs. Ну, без какого-либо живого emacs-сообщества в пределах видимости я так по-первости и не понял, чем это принципиально отличается от Vim’а, и настраивать непонятно как. В общем забраковал, но… вернулся, чтобы посмотреть, что за штука этот Lisp.
После некоторого втыкания в CL, предпринял второй подход к снаряду. На этот раз это была ванила. Набрав статей и настроек, соорудил уже нечто работоспособное. Однако, каждый чих работал как-то не так, а то и раздражающе не так, как мне надо (а надо мне не так много). Emacs снова был забракован.
Однако, коварство Emacs состоит в том, что к нему почему-то возвращаешься. Так что третьим подходом снова стал Spacemacs. Набравшись теперь каких-то знаний, Spacemacs таки взлетел и заблистал в своей красе! Это не значит, что я в процессе не ругался и не матерился, но работать отныне стал на нем. Параллельно читал статьи и смотрел ролики на Youtube. В Spacemacs нашлись нужные мне инструменты, а еще куча других ништяков.
И вот тут вышел на org-mode. Порог вхождения там оказался минимальный, к тому же можно было быстро и легко стряпать текстовые таблички - крутота! А потом еще на рабочих созвонах можно тут же выделить записанное и кинуть в рабочий чат. Удобно! Так и мануал по org’у прочитать стоит. В общем, org-mode начал свой победный путь в моей деятельности. От заметок и базы знаний, до замены таких инструментов, как Postman и Jupyter-notebook. А еще есть agenda с TODO’шками - красота! Ведение дел стало увлекательным занятием с узнаванием каждый раз чего-то нового. Ах, да, еще же literate programming и literate configs. Ах, да, и еще magit!
Вернусь к Emacs. В роликах, что я находил, такие авторитетные товарищи, как Дерек с канала Distrotube, пользовались другой надстройкой - Doom Emacs. Ну, значит, надо пробовать. К тому же Spacemacs все же как-то часто “искрил” при работе, а его develop оказался стабильнее мастера. Doom Emacs дался не сразу (убирал часть не нужных мне удобств), но теперь он мой любимый редактор. Перенес в него некоторые удобные фишки Spacemacs’а и получилось классно. Знаю, ванильщики не любят Doom (а то и хейтят), но на мой взгляд зря. Doom Emacs - отличная штука, особенно после тюнинга под себя, - вот и Дерек говорит. Время от времени нахожу в нем очередные удобства для деятельности.
Про версию сборки. Собираю Emacs из исходников, так что на момент написания этого текста у меня собрана 29-я версия.
Отвечая на вопросы топика:
- Почему Emacs?
Emacs дает долгосрочные знания, которые не исчезнут со временем. Он работает не с кнопочками и закрытыми форматами, а с ясными plain-текстами. Знания эти применимы и к литераторству, и к программированию, и к математике, и много к чему.
Emacs настраивается под себя, и это не пустой звук! Оценить такую настройку по достоинству можно только пропустив ее через собственные руки. А до этого ценность будет непонятна.
Org-mode - потрясающая многофункциональная вещь. Полноценных аналогов я ей не вижу.
Работая с Emacs, приобретаешь самые неожиданные (при этом полезные) знания.
- Какие преимущества вы видите для себя?
Одно из преимуществ - это удобство следования принципам “все как текст” и/или “все как код”, ведь Emacs хорошо цепляет все, что хоть как-то связано с plain-текстом. Принципы эти становятся точкой соприкосновения разных областей знаний и умений.
База знаний благодаря org-babel приобретает интерактивность. Еще можно делать интерактивные презентации, а после их демонстрации сразу добавлять в базу знаний.
Отдельно выскажусь про ведение конспектов по читаемым книгам. Здесь удобство литературного программирования редстает во всей красе! Конспекты наполняются примерами и результатами их выполнения, а также решениями задачек. Перекрестныые ссылки внутри конспекта позволяют по мере прочтения материала уточнять и прояснять плохо или нечетко данные определения и понятия. PlantUML позволяет быстро вставлять в конспект небольшие схемки.
Все написанное отлично ложится в Git-репозиторий и magit тут в помощь.
- Если бы начинали изучать емакс сейчас с нуля, то с чего бы начали (понимая уже всю систему)?
Как вимер, сразу бы поставил Doom Emacs и первым делом начал бы с работы в org-mode.
Далее поизучал бы Lisp и почитал про литературное программирование.
Еще поскорее бы попытался найти живое сообщество по Emacs.
Не факт что это взлетит. Как вимер поставил себе именно Doom. Но на windows у него как-то коряво отображается кириллица. В итоге - Doom снес и начал с vanilla… С учетом что от emacs нужен, по большому счету, только org-mode и org-roam - более чем достаточно для изучения. Да, еще и ledger прикрутил. Получается в одном месте - список дел/проектов; база знаний; учет финансов.
Меня эта история прям вдохновила еще раз подойти к снаряду. Для меня это было прямо больно-больно.
Но честно не знаю с чего начать. Сейчас это вопрос заметковедения. У меня около 1500 заметок в обсидиане. Там очень все удобно и комфортно. Не понимаю как и что можно заменить, соответственно с чего начать освоение емакса.
Стоит сборка дум и ванила есть. У меня самая большая боль сейчас — навигация.
Можно воспользоваться в качестве плана обучения emacs’у
https://sachachua.com/blog/2014/01/tips-learning-org-mode-emacs/
Я периодически подглядываю, т.к. emacs у меня “живет” всего месяц
Каждый раз когда вижу такое на меня накатывает депрессия.
Нужно научиться читать подобные данные. Для меня в них минимум информации, хотя понимаю что там предостаточно информации, я просто не умею расшифровывать.
Эти данные не нужно читать. Их надо копировать и вставлять в свой init.el. Или не вставлять. Я бы вот например не стал.
Обычно если вдруг мне что-то понадобилось конкретное, то тогда я ищу, как это сделать. Даже не читая elisp-код я могу примерно оценить – 5 строк какого-то кода я готов себе взять. Больше – скорее всего нет. Если там какие-то новые функции и тем более хоткеи – наверняка не буду брать.
Даже если это что-то “очень удобное” это какой-то очень личный код. До тех пор, пока я окончательно не убедился, что ровно такое поведение мне требуется (и не попытался сначала сам это решить), скорее всего брать чужой код я не буду.
У меня пока самое огромное ограничение для запуска емакса – навигация, к ней нужно привыкать. Второе ограничение – логика. Мне немного непонятно какими категориями происходит функционирование.
Обсидина – все понятно, приложение, плагины, заметки лежат локально. Ноушн – все в облаке, заметки не у тебя, при факапе, попадаешь на всю базу, медленно и неуклюже. Емакс, для меня черный ящик. Как бы его преодолеть? Путем чтения книги Mastering emacs?
В самом емаксе все происходит на уровне файлов. Это просто текстовый редактор – открываем файл, редактируем.