Странные отступы внутри блока src в режиме emacs org - PullRequest
10 голосов
/ 19 марта 2012

Я пытаюсь редактировать документ в режиме орг. Документ представляет собой сообщение в блоге. Мне нужно, чтобы тело поста было в уценке, поэтому я использую блок src.

Проблема в том, что когда я изменяю или сохраняю текст в блоке src после открытия его в другом буфере с помощью C-c ', применяется какой-то тип автоматического отступа, который портит мое форматирование.

Вот подробности.

Начиная с буфера, который выглядит следующим образом:

* title...
* body
#+begin_src markdown
Some text.
#+end_src

Я нажимаю C-c ' и получаю новый буфер, где я редактирую текст уценки, чтобы он выглядел в режиме уценки следующим образом:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam
lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam
viverra nec consectetur ante hendrerit. Donec et mollis
dolor. Praesent et diam eget libero egestas mattis sit amet vitae

Я использовал M-q для форматирования текстовых строк, чтобы в конце каждой строки были новые строки. Также нет начальных пробелов.

Теперь, если я нажму C-x C-s для сохранения или C-c ', приведенное выше форматирование будет изменено так:

  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam
lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam
  viverra nec consectetur ante hendrerit. Donec et mollis
dolor. Praesent et diam eget libero egestas mattis sit amet vitae

Каждая вторая строка имеет отступ в два пробела.

Я пробовал это с другими типами src, такими как:

#+begin_src javascript

У меня похожие отступы, хотя они не чередуются. Вместо этого в каждую строку добавляется два пробела.

Я предполагаю, что это не ошибка, но мой поиск в Интернете и просмотр документации не нашли ответа.

Я использую GNU Emacs 23.4.1 в Arch Linux с Org-mode 6.33x.

Я также пытался использовать последнюю версию org-mode из git 7.8.05.

Ответы [ 2 ]

15 голосов
/ 19 марта 2012

Переменная, которую вы хотите настроить: org-edit-src-content-indentation

org-edit-src-content-indentation - переменная, определенная в `org-src.el '.

Его значение составляет 2

Документация: Отступ для содержимого блока исходного кода. Это должно быть количество пробелов, добавленных к отступу # + begin строка для вычисления отступа содержимого блока после редактировать его с помощью M-x org-edit-src-code. Не имеет эффекта, если Значение org-src-preserve-indentation не равно нулю.

Вы можете узнать это сами:

  1. C-h k C-c 'org-edit-special

  2. М-х apropos-variable org-edit

2 голосов
/ 19 марта 2012

На первый взгляд это выглядит как авто-отступ блоков в Org. Я знаю, что по умолчанию он пытается сделать так, чтобы тело блока было двумя пробелами из строк #+begin и #+end.

Однако я бы порекомендовал обновить его до более новой версии. 6.33x очень старый и за это время произошли изменения в кодовых блоках. Это доступно в AUR ( Здесь ). Однако я бы порекомендовал использовать git для получения версии 7.8.03 в данный момент, при выпуске 7.8.04 и затем 7.8.05 была допущена ошибка, и они находятся в процессе ее исправления. Кроме того, версия, поставляемая в комплекте с Emacs24, стабильна и намного более актуальна.

...