Изучаем Emacs. Эпизод 10: Базовые возможности Org-mode, literate programming и экспорт в html/pdf

Поделиться
HTML-код
  • Опубликовано: 17 ноя 2024

Комментарии • 23

  • @ВячеславБеляев-к9п
    @ВячеславБеляев-к9п 11 месяцев назад

    org-mode топчик. раньше пользовался облачными заметками, теперь перешёл на org-mode

  • @AlexanderPetrov
    @AlexanderPetrov 11 лет назад +1

    Классный эпизод! Спасибо, Дмитрий!
    Обожаю org-mode!
    Насчёт literate programming я бы хотел сказать, что это скорее подходит для написания книг по программированию и создания документации по технологиям, нежели для работы на прикладным кодом. Наличие комментариев в коде это запах. Полезны только те комментарии, которые сообщают о намерениях автора (Какой шаблон проектирования используется и почему), а не о том что код делает. Нужно стремиться писать чистый код который рассказывает историю.

  • @SergeyGolovin
    @SergeyGolovin 11 лет назад

    Спасибо большое! Ждем продолжения.

  • @ВячеславБеляев-к9п
    @ВячеславБеляев-к9п 11 месяцев назад

    в org-mode есть ещё функционал , связанный с agenda. там всё ещё веселее

  • @dbushenko
    @dbushenko  11 лет назад +1

    Да, на днях будет 11 серия.

  • @AlaksiejSakaou
    @AlaksiejSakaou 10 лет назад +1

    Подскажите плз что за тема играет на 14-ой минуте. Спсб)

  • @SergeiPetrov
    @SergeiPetrov 10 лет назад +2

    Парадоксальным образом tangle не так уж эффективна как weave :)
    Weave "раскрывает" вставки кода показывая результат исполнения в том числе и графический. Например так можно сразу писать отчет по анализу данных в Sweave или knitr на смеси текста статьи, данных и кода на R.
    А в случае org-babel на любых других языках дополнительно.

    • @ivanavich128
      @ivanavich128 10 лет назад

      А нумерация то строк у мальчика не кошерная!
      updated: Вот же непреятность. Комментраии прямо на ютюбовскую страницу из плюса валятся. В этом случае извиняюсь, если звучит обидно. На самом деле серия годна и хороша!

    • @SergeiPetrov
      @SergeiPetrov 10 лет назад

      он _очень_ _хорошо_ объясняет зато

    • @DmitryFomin
      @DmitryFomin 7 лет назад

      т.е. можно типа как Jupyter Notebook сделать в Emacs ?

    • @DmitryFomin
      @DmitryFomin 7 лет назад

      что то не могу найти что такое weave :( это дополнительный packege или built-in функция?

  • @DmitryFomin
    @DmitryFomin 7 лет назад

    классно! про грамотное программирование. То что хотелось попробовать - чтобы аналитики писали постановку в некий шаблон, а по нему потом разраб писал код.
    Интересно, можно ли сделать наоборот, чтобы экспортировались все куски ВНЕ фрагмента, заключенного в некие теги :/

  • @dbushenko
    @dbushenko  11 лет назад +1

    Ну это не ко мне, а к Д.Кнуту, я же просто рассказал, что org-mode может literate programming :-)

  • @РамильГ-т9я
    @РамильГ-т9я 5 лет назад

    Меееедленнно

  • @IgroMan95g
    @IgroMan95g 8 лет назад

    Здравствуйте, Дмитрий, по вашему совету начал переходить с ergoemacs, теперь сам переписываю все команды под себя, столкнулся с таким затруднением, я назначил на сочетание C-x команду вырезать, и теперь если я хочу закрыть программу по сочетанию C-x c, он после нажатия C-x сразу выполняет команду вырезать, с этим можно как-то решить проблему? Или придется переназначать команду для закрытия emacs?

    • @dbushenko
      @dbushenko  8 лет назад

      Думаю, тут придется выбирать: либо использовать C-x для вырезания, либо испльзовать C-x как префикс для других команд. Лично я все сочетания C-x переназначил на M-x просто потому, что Alt легче нажимать большим пальцем руки, чем Ctrl -- мизинцем.

    • @IgroMan95g
      @IgroMan95g 8 лет назад

      хорошо, спасибо

  • @IgroMan95g
    @IgroMan95g 8 лет назад

    Здравствуйте, возможно я надоедаю с глупыми вопросами, ну не вините новичка)) Я хотел у вас спросить по поводу поиска в ergoemacs, я нашел там сочетания для поиска C-f, M-y и M-Y, они работают, но вопроса два, как перейти к следующему найденному сочетанию и почему иногда он например в процессе того как я набираю слово для поиска, например jabber, после того как он находит в каком-то месте jab остальное не хочет проверять и говорит что ничего не нашел, причем однажды у меня получилось перейти к следующей найденной комбинации теми же сочетаниями что я описал выше, странно)
    И еще один вопрос, почему в некоторых режимах, например C-mode, периодически отказывает сочетание M-a, это для выполнения функции, а сочетание M-j, которое должно работать как передвинуть курсор влево, просто вставляет знак переноса строки в текущее положение, я понимаю что дело в настроенном режиме, но иногда это сочетание работает корректно, я действительно не понимаю что за магия там происходит, объясните пожалуйста))
    И еще как не пытался, не смог экспортировать из org в pdf, даже уже установил пакет texlive-latex-extra, который весит около одного гигабайта, но ни в какаю
    Заранее спасибо за помощь, надеюсь что сможете мне объяснить это магию и премудрости emacs)))

    • @dbushenko
      @dbushenko  8 лет назад +1

      1) Режим поиска -- это совершенно отдельный major-mode, и у него есть свой отдельный список сочетаний клавиш, работающих только в этом режиме. Видимо ergoemacs не определил несколько нужных вам. Вообще в моих видео используется одна из первых версий ergoemacs, но с тех пор там многое изменилось. Лично я уже давно не использую ergoemacs, и вам советую постепенно от него отходить :-)
      Чтобы добавить нужные сочетания клавиш в режиме поиска лично я делаю так: gist.github.com/dbushenko/d1cc20c2242aba487a8715a5431b9ad8 (добавьте это в конец вашего .emacs-файла).
      2) В некоторых режимах не работают сочетания определенных вами клавиш из-за иерархии map-ов. Самый общий map -- это глобальный. В нем ищутся сочетания клавиш в последнюю очередь. Обратите внимание, что именно там вы и определили ваши шорткаты. Следующий -- major-mode-map. Он свой для каждого major-mode, например -- для C-mode. И наиболее приоритетный -- minor-mode-maps, которых может быть больше одного. Таким образом, вначале ищется сочетание клавиш в минорных режимах. Если не находится -- ищется в мажорном, в вашем случае -- C-mode. Т.к. там M-j определено, Emacs использует именно это определение. Если бы его там не было, тогда Emacs стал бы искать в global-map-е, и сработало бы ваше определение.
      Чтобы это исправить, вам нужно переопределить ваши шорткаты конкретно для C-mode. В gist-е я показал пример, как это можно сделать для isearch-mode.
      3) Экспорт в pdf работает через экспорт в latex. Иногда tex-файл необходимо править, т.к. там, например, могут быть ссылки на неустановленные пакеты. Я делаю так: сперва экспортирую в latex, затем утилитой pdflatex -- в pdf. Если сваливается с ошибкой -- тогда уже смотрю конкретно, что там за ошибка.

    • @IgroMan95g
      @IgroMan95g 8 лет назад

      Спасибо, буду разбираться

  • @konstantin_ilyashenko
    @konstantin_ilyashenko 11 лет назад

    Продолжение скринкастов планируется?

  • @YuriySamorodov
    @YuriySamorodov 10 лет назад +1

    [offtopic]
    Очень жаль, что Org-Mode очень плох на мобильных платформах.
    Org-mode + bittorentsync был бы идеальной парой для персонального органайзера, когда не хочется связываться с сервисами а-ля Dropbox
    [/offtopic]

  • @AlexanderPetrov
    @AlexanderPetrov 11 лет назад

    Дмитрий, к тебе претензий нет:) Для тех времён, когда Д.Кнут выдвинул свою идею, она была более актуальной чем сейчас. Тогда код имел недостаточно выразительных средств, чтобы быть самодокументированным. Теперь есть ОО-языки Ruby, Python, Java и другие, для которых literate programming скорее мешает. А вот для функциональных языков типа Haskell, Lisp и т.п. literate programming по прежнему актуален ИМХО. Эту идею в том числе пропогандирует в своих книгах по Haskell Душкин Роман.