# Emacs, org-mode, вставки кода
Andrew Lobanov(tavern,1) — All
2020-08-03 07:41:01


Привет, сектанты!

Я знаю, тут многие пользуются org-mode в emacs. Возникли вопросы по вставкам кода. Пользуетесь ли? Если пользуетесь, то как дружите org-mode с форматированием кода?

Например, я хочу записать небольшой пример на python:

#+BEGIN_SRC python
def hello_function():
    print('Hello, World!')
#+END_SRC

Но приходится приходится вручную забивать пробелы. Можно нажать C-c ' и отредактировать код в отдельном буфере, сохранить и выйти. Отредактирвоанный код автоматически вставится в редактируемый org-файл, но при повторном редактировании с отступами начинает творится какая-то вакханалия. Отступы выставляются табами (что не PEP-8 и вообще кю для пайтона), редачить приходится вновь забивая пробелы руками. И вообще не очень понимаю пока что происходит.

Что посоветуете? С учётом того, что начал вести цеттелькастен и для быстрого поиска вещей, которые плохо укладываются в голове, начал делать много заметок с кодом, проблема аж анноит и хочется красивого решения. Беглое гугление и поиск по stackoverflow ситуацию не только не прояснили, но и запутали ещё больше.

Заранее спасибо.

# Re: Emacs, org-mode, вставки кода
Andrew Lobanov(tavern,1) — Andrew Lobanov
2020-08-03 07:52:11


Вопрос снимается. Недочистил хук на пайтон после экспериментов с you complete me демоном. После удаления кривого хука и выставления

(setq org-src-preserve-indentation nil)
(setq org-edit-src-content-indentation 0)

в ~/.emacs проблема разрешилась и поведение стало ровно таким, как я хочу.

Всем спасибо :)

# Re: Emacs, org-mode, вставки кода
vit01(mira, 1) — Andrew Lobanov
2020-08-03 09:06:52


> Возникли вопросы по вставкам кода. Пользуетесь ли?

Когда только осваивал org-mode, игрался со вставками кода. Но потом освоил Jupyter Notebook/Lab, влюбился в него и держу мелкие (и не только мелкие) куски кода только там. Можно их и с markdown миксовать вполне

Кстати, в Emacs есть режим для удалённого подключения к серверу Jupyter, народ пользуется как-то.

+++ Отправлено через IDEC Mobile
+++ GNU/Linux, Android, physics, MLP:FIM

# Re: Emacs, org-mode, вставки кода
Andrew Lobanov(tavern,1) — vit01
2020-08-03 10:50:26


>> Возникли вопросы по вставкам кода. Пользуетесь ли?
vit01> Когда только осваивал org-mode, игрался со вставками кода. Но потом освоил Jupyter Notebook/Lab, влюбился в него и держу мелкие (и не только мелкие) куски кода только там. Можно их и с markdown миксовать вполне

org-mode я люблю шибче markdown. Jupyter Notebook я пробовал, но не понял его. Есть какое-нибудь введение для самых маленьких?

vit01> Кстати, в Emacs есть режим для удалённого подключения к серверу Jupyter, народ пользуется как-то.

Ну это я пока даже не знаю зачем мне :)

# Re: Emacs, org-mode, вставки кода
Andrew Lobanov(tavern,1) — vit01
2020-08-03 11:18:02


vit01> Когда только осваивал org-mode, игрался со вставками кода. Но потом освоил Jupyter Notebook/Lab, влюбился в него и держу мелкие (и не только мелкие) куски кода только там. Можно их и с markdown миксовать вполне

Вообще, zettelkasten намекает, что и org-mode это немного пребор, но это действительно удобный инструмент для структурирования информации. Для вставок кода и ссылок хватило бы и markdown, но org-mode мне просто больше нравится. Плюс это всё таки простая плоская структура текстовых файлов, которую при необходимости можно обрабатывать чем угодно, а какой-нибудь pandoc позволит весьма безболезненно переехать на любой другой подходящий формат.

# Re: Emacs, org-mode, вставки кода
vit01(mira, 1) — Andrew Lobanov
2020-08-21 15:15:06


AL> org-mode я люблю шибче markdown. Jupyter Notebook я пробовал, но не понял его. Есть какое-нибудь введение для самых маленьких?

Здесь: https://medium.com/codingthesmartway-com-blog/getting-started-with-jupyter-notebook-for-python-4e7082bd5d46

Фишка в том, что ты пишешь код поэтапно, можешь на ходу выводить значения переменных, строить графики, таблицы и.т.п. Это то же самое, что скрестить REPL с самим текстовым редактором, только код пишется в виде блоков. И сразу же закинуть документацию

Вообще, вместо классического Jupyter Notebook я бы посоветовал поставить JupyterLab (из-за действительно удобного интерфейса).

А насчёт маркдауна - это да, он не настолько крутой и всеобъемлющий, как org-mode, но ничто не мешает использовать и то, и другое в зависимости от контекста. Я тоже люблю org-mode гораздо больше, и это вызвано наличием фич для планирования и расписаний + фишками Емакса вроде сворачивания заметок по табу и в целом сочетаниями клавиш

+++ IDEC Mobile в виртуальной машине
+++ GNU/Linux, Android, physics, MLP:FIM

# Re: Emacs, org-mode, вставки кода
constantin(tavern,33) — Andrew Lobanov
2020-10-29 20:09:02


Подскажи, пожалуйста,
1. каким образом ты ставишь ссылки на файлы?
2. и затем переходишь по ним?

Я нашёл org-store-link или как-то так, но вот сомневаюсь, оно ли, та ли это эффективность.
И C-c C-o для открытия перехода по ссылке в файле.

Вопрос в контексте zettelkasten.

И второй вопрос, про org-mode:
Для вызова Agenda есть ли комбинация клавиши по-умолчанию или надо настраивать, т.к. C-c C-a у меня не работает так, как нашёл в одной из инструкций...

Спасибо)

# Re: Emacs, org-mode, вставки кода
btimofeev(tavern,13) — constantin
2020-10-30 07:13:24


constantin> 1. каким образом ты ставишь ссылки на файлы?

Примеры из мануала https://orgmode.org/manual/External-Links.html

####
‘file:/home/dominik/images/jupiter.jpg’
‘/home/dominik/images/jupiter.jpg’ (same as above)
‘file:papers/last.pdf’
‘./papers/last.pdf’ (same as above)
‘file:/ssh:me@some.where:papers/last.pdf’ (remote)
‘/ssh:me@some.where:papers/last.pdf’ (same as above)
‘file:sometextfile::NNN’ (jump to line number)
‘file:projects.org’
‘file:projects.org::some words’ (text search)27
‘file:projects.org::*task title’ (headline search)
‘file:projects.org::#custom-id’ (headline search)
####

constantin> Для вызова Agenda есть ли комбинация клавиши по-умолчанию или надо настраивать, т.к. C-c C-a у меня не работает так, как нашёл в одной из инструкций...

В инит файл емакса добавь типа такого:
(global-set-key (kbd "C-c a") 'org-agenda)