Классный эпизод! Спасибо, Дмитрий! Обожаю org-mode! Насчёт literate programming я бы хотел сказать, что это скорее подходит для написания книг по программированию и создания документации по технологиям, нежели для работы на прикладным кодом. Наличие комментариев в коде это запах. Полезны только те комментарии, которые сообщают о намерениях автора (Какой шаблон проектирования используется и почему), а не о том что код делает. Нужно стремиться писать чистый код который рассказывает историю.
Парадоксальным образом tangle не так уж эффективна как weave :) Weave "раскрывает" вставки кода показывая результат исполнения в том числе и графический. Например так можно сразу писать отчет по анализу данных в Sweave или knitr на смеси текста статьи, данных и кода на R. А в случае org-babel на любых других языках дополнительно.
А нумерация то строк у мальчика не кошерная! updated: Вот же непреятность. Комментраии прямо на ютюбовскую страницу из плюса валятся. В этом случае извиняюсь, если звучит обидно. На самом деле серия годна и хороша!
классно! про грамотное программирование. То что хотелось попробовать - чтобы аналитики писали постановку в некий шаблон, а по нему потом разраб писал код. Интересно, можно ли сделать наоборот, чтобы экспортировались все куски ВНЕ фрагмента, заключенного в некие теги :/
Здравствуйте, Дмитрий, по вашему совету начал переходить с ergoemacs, теперь сам переписываю все команды под себя, столкнулся с таким затруднением, я назначил на сочетание C-x команду вырезать, и теперь если я хочу закрыть программу по сочетанию C-x c, он после нажатия C-x сразу выполняет команду вырезать, с этим можно как-то решить проблему? Или придется переназначать команду для закрытия emacs?
Думаю, тут придется выбирать: либо использовать C-x для вырезания, либо испльзовать C-x как префикс для других команд. Лично я все сочетания C-x переназначил на M-x просто потому, что Alt легче нажимать большим пальцем руки, чем Ctrl -- мизинцем.
Здравствуйте, возможно я надоедаю с глупыми вопросами, ну не вините новичка)) Я хотел у вас спросить по поводу поиска в ergoemacs, я нашел там сочетания для поиска C-f, M-y и M-Y, они работают, но вопроса два, как перейти к следующему найденному сочетанию и почему иногда он например в процессе того как я набираю слово для поиска, например jabber, после того как он находит в каком-то месте jab остальное не хочет проверять и говорит что ничего не нашел, причем однажды у меня получилось перейти к следующей найденной комбинации теми же сочетаниями что я описал выше, странно) И еще один вопрос, почему в некоторых режимах, например C-mode, периодически отказывает сочетание M-a, это для выполнения функции, а сочетание M-j, которое должно работать как передвинуть курсор влево, просто вставляет знак переноса строки в текущее положение, я понимаю что дело в настроенном режиме, но иногда это сочетание работает корректно, я действительно не понимаю что за магия там происходит, объясните пожалуйста)) И еще как не пытался, не смог экспортировать из org в pdf, даже уже установил пакет texlive-latex-extra, который весит около одного гигабайта, но ни в какаю Заранее спасибо за помощь, надеюсь что сможете мне объяснить это магию и премудрости emacs)))
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. Если сваливается с ошибкой -- тогда уже смотрю конкретно, что там за ошибка.
[offtopic] Очень жаль, что Org-Mode очень плох на мобильных платформах. Org-mode + bittorentsync был бы идеальной парой для персонального органайзера, когда не хочется связываться с сервисами а-ля Dropbox [/offtopic]
Дмитрий, к тебе претензий нет:) Для тех времён, когда Д.Кнут выдвинул свою идею, она была более актуальной чем сейчас. Тогда код имел недостаточно выразительных средств, чтобы быть самодокументированным. Теперь есть ОО-языки Ruby, Python, Java и другие, для которых literate programming скорее мешает. А вот для функциональных языков типа Haskell, Lisp и т.п. literate programming по прежнему актуален ИМХО. Эту идею в том числе пропогандирует в своих книгах по Haskell Душкин Роман.
org-mode топчик. раньше пользовался облачными заметками, теперь перешёл на org-mode
Классный эпизод! Спасибо, Дмитрий!
Обожаю org-mode!
Насчёт literate programming я бы хотел сказать, что это скорее подходит для написания книг по программированию и создания документации по технологиям, нежели для работы на прикладным кодом. Наличие комментариев в коде это запах. Полезны только те комментарии, которые сообщают о намерениях автора (Какой шаблон проектирования используется и почему), а не о том что код делает. Нужно стремиться писать чистый код который рассказывает историю.
Спасибо большое! Ждем продолжения.
в org-mode есть ещё функционал , связанный с agenda. там всё ещё веселее
Да, на днях будет 11 серия.
Подскажите плз что за тема играет на 14-ой минуте. Спсб)
Парадоксальным образом tangle не так уж эффективна как weave :)
Weave "раскрывает" вставки кода показывая результат исполнения в том числе и графический. Например так можно сразу писать отчет по анализу данных в Sweave или knitr на смеси текста статьи, данных и кода на R.
А в случае org-babel на любых других языках дополнительно.
А нумерация то строк у мальчика не кошерная!
updated: Вот же непреятность. Комментраии прямо на ютюбовскую страницу из плюса валятся. В этом случае извиняюсь, если звучит обидно. На самом деле серия годна и хороша!
он _очень_ _хорошо_ объясняет зато
т.е. можно типа как Jupyter Notebook сделать в Emacs ?
что то не могу найти что такое weave :( это дополнительный packege или built-in функция?
классно! про грамотное программирование. То что хотелось попробовать - чтобы аналитики писали постановку в некий шаблон, а по нему потом разраб писал код.
Интересно, можно ли сделать наоборот, чтобы экспортировались все куски ВНЕ фрагмента, заключенного в некие теги :/
Ну это не ко мне, а к Д.Кнуту, я же просто рассказал, что org-mode может literate programming :-)
Меееедленнно
Здравствуйте, Дмитрий, по вашему совету начал переходить с ergoemacs, теперь сам переписываю все команды под себя, столкнулся с таким затруднением, я назначил на сочетание C-x команду вырезать, и теперь если я хочу закрыть программу по сочетанию C-x c, он после нажатия C-x сразу выполняет команду вырезать, с этим можно как-то решить проблему? Или придется переназначать команду для закрытия emacs?
Думаю, тут придется выбирать: либо использовать C-x для вырезания, либо испльзовать C-x как префикс для других команд. Лично я все сочетания C-x переназначил на M-x просто потому, что Alt легче нажимать большим пальцем руки, чем Ctrl -- мизинцем.
хорошо, спасибо
Здравствуйте, возможно я надоедаю с глупыми вопросами, ну не вините новичка)) Я хотел у вас спросить по поводу поиска в ergoemacs, я нашел там сочетания для поиска C-f, M-y и M-Y, они работают, но вопроса два, как перейти к следующему найденному сочетанию и почему иногда он например в процессе того как я набираю слово для поиска, например jabber, после того как он находит в каком-то месте jab остальное не хочет проверять и говорит что ничего не нашел, причем однажды у меня получилось перейти к следующей найденной комбинации теми же сочетаниями что я описал выше, странно)
И еще один вопрос, почему в некоторых режимах, например C-mode, периодически отказывает сочетание M-a, это для выполнения функции, а сочетание M-j, которое должно работать как передвинуть курсор влево, просто вставляет знак переноса строки в текущее положение, я понимаю что дело в настроенном режиме, но иногда это сочетание работает корректно, я действительно не понимаю что за магия там происходит, объясните пожалуйста))
И еще как не пытался, не смог экспортировать из org в pdf, даже уже установил пакет texlive-latex-extra, который весит около одного гигабайта, но ни в какаю
Заранее спасибо за помощь, надеюсь что сможете мне объяснить это магию и премудрости emacs)))
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. Если сваливается с ошибкой -- тогда уже смотрю конкретно, что там за ошибка.
Спасибо, буду разбираться
Продолжение скринкастов планируется?
[offtopic]
Очень жаль, что Org-Mode очень плох на мобильных платформах.
Org-mode + bittorentsync был бы идеальной парой для персонального органайзера, когда не хочется связываться с сервисами а-ля Dropbox
[/offtopic]
Дмитрий, к тебе претензий нет:) Для тех времён, когда Д.Кнут выдвинул свою идею, она была более актуальной чем сейчас. Тогда код имел недостаточно выразительных средств, чтобы быть самодокументированным. Теперь есть ОО-языки Ruby, Python, Java и другие, для которых literate programming скорее мешает. А вот для функциональных языков типа Haskell, Lisp и т.п. literate programming по прежнему актуален ИМХО. Эту идею в том числе пропогандирует в своих книгах по Haskell Душкин Роман.