Прежде всего: это Emacs. Это не ошибка, это настройка!
Во-вторых, @glucas правильно говорит, что вам нужно изменить,org-emphasis-regexp-components
чтобы получить то, что вы хотите. Тем не менее, я хотел бы предложить две модификации его (@ Malabarba's) кода и предоставить немного больше контекста:
Вам не нужно копировать все значение org-emphasis-regexp-components
в ваш init-файл, чтобы изменить один компонент. Для вашего случая использования достаточно:
(setcar (nthcdr 2 org-emphasis-regexp-components) " \t\r\n,\"")
Вам не нужно изменять org-emphasis-regexp-components
перед загрузкой org-mode
через (require 'org)
. Просто добавьте следующую строку после ваших изменений:
(org-set-emph-re 'org-emphasis-regexp-components org-emphasis-regexp-components)
Больше контекста
Если вы хотите настроить другие аспекты работы разметки выделения org-mode
, знайте это:
Значение org-emphasis-regexp-components
представляет собой список с пятью записями.
Первая запись определяет, какие символы могут непосредственно предшествовать символам разметки. Если вы хотите, чтобы что-то вроде why=hello=
рендера было правильно, вам нужно изменить эту запись.
(setcar org-emphasis-regexp-components "...")
Вторая запись определяет, каким символам разрешено следовать сразу за символами разметки. Если вы хотите, чтобы что-то вроде =hello=there
рендера было правильно, вам нужно изменить эту запись.
(setcar (nthcdr 1 org-emphasis-regexp-components) "...")
Третья запись определяет символы, которые не допускаются в качестве пограничных символов , то есть символы, которые следуют сразу за открывающим символом разметки или предшествуют закрывающему символу разметки. Вам нужно будет изменить это, чтобы сделать такие вещи, как ='hello'=
рендер правильно.
(setcar (nthcdr 2 org-emphasis-regexp-components) "...")
Четвертая запись перечисляет символы, которые разрешены в теле размеченной строки, то есть символы, которые появляются между символами границы. Вам редко понадобится изменить это; по умолчанию любой символ допускается как символ тела.
(setcar (nthcdr 3 org-emphasis-regexp-components) "...")
Пятая запись указывает, сколько новых строк разрешено внутри размеченного выражения. По умолчанию org-mode
допускается один перевод строки. Поэтому, если вы хотите иметь возможность добавлять разметку к тексту, который занимает более двух последовательных строк, вам нужно изменить эту запись.
(setcar (nthcdr 4 org-emphasis-regexp-components) N)
... где N
количество строк, которые вы хотите разрешить.
Похожие сообщения
Люди, кажется, сталкиваются с этой проблемой довольно часто. Помимо упомянутого вами поста , в StackOverflow есть еще как минимум два вопроса, которые касаются очень похожих проблем: