В: Как я могу предотвратить org-mode
перетекание граней ссылок в ...
символы выборочного отображения в конце сложенного заголовка?
Это визуальный тик, который сводит меня с ума. Когда org-mode
ссылка является самой последней вещью в строке, лицевая сторона ссылки перетекает в то, ...
что указывает на то, что заголовок свернут. Если, скажем, после ссылки есть пробел, кровотечения нет.
Скриншот, который я разместил, демонстрирует проблему. Третья строка - проблемная строка без символов между концом ссылки и концом строки, а четвертая строка показывает ссылку, за которой следует пробел:
Прежде всего, почему это происходит? Во-вторых, и, что более важно, как мне остановить это?
ОБНОВЛЕНИЕ 1: Согласно комментариям, ниже выложены скриншоты буфера с закрытыми и открытыми заголовками. Я открыл Emacs без файла инициализации (то есть emacs -Q
), require
d org-mode и открыл этот файл примера. Итак: это не кажется чем-то странным в моей настройке.
Все заголовки закрыты:
Все заголовки открыты:
Темой, которую я использовал выше, является чернильница, хотя у меня возникает та же проблема при использовании соляризованной темы, а также темы по умолчанию (как на новых скриншотах).
Версия Emacs - 24.3.1. Я получаю те же результаты, когда использую версию org 7.9.3f (то есть ту, что связана с этой версией Emacs), а также 8.3beta.
ОБНОВЛЕНИЕ 2: вот минимальный рабочий пример в ответ на запрос комментария:
* here's a header with a [[~/somefile.txt][link at the end]]
- This one's a problem
- Interesting note:
+ put the cursor immediately *after* the *d* in "end" with the
header closed/folded
* the face no longer bleeds over into the dots
+ move the cursor anywhere else
* the face bleeds over into the dots again
* here's another [[~/someotherfile.txt][go at it]]
DEADLINE: <2014-10-26 Sun>
- This one's also a problem
* here's another header with a [[~/anotherfile.txt][link followed by a space]]
- No bleed-over onto the dots with this one
Ответы:
Это выглядит как ошибка вызвана
org-mode
«Sorg-activate-bracket-links
функции.Вот как выглядит эта функция:
Он ищет совпадение для ссылки в квадратных скобках (например
[[target][label]]
, скрывает[[target][
деталь, добавляяip
к текстовым свойствам, затем связываетlabel
, добавляяvp
к текстовым свойствам, и, наконец, удаляет завершающий элемент, снова]]
добавляяip
к текстовым свойствам.Это все выглядит правильно.
org-rear-nonsticky-at
следует позаботиться о собственности кровотечение.Это поведение вызвано тем
(add-text-properties (match-end 3) (match-end 0) ip)
, что скрывает трейлинг]]
. Только'invisible 'org-link
свойство вызывает это поведение, остальные свойства кажутся невинными.Вы можете переписать так
org-activate-bracket-links
, чтобыip
больше не устанавливалось,'invisible
но'display ""
, что имеет тот же эффект:Понятно, что это безобразный хак. Но это работает для меня и может работать для вас. Я все еще рекомендую подать отчет об ошибке.
источник
[[~/somefile.txt][link label]]
какlink label
(где курсивом обозначено стандартное лицо для ссылки), оно становитсяlink label]]
(без изменения лица). Я отправлю отчет об ошибке.org-activate-bracket-links
- это замена'invisible non-nil
на'display ""
, поэтому он должен по-прежнему применять лицо ссылки, как и раньше. Это, конечно, работает для меня в Emacs 24.4, но я думаю, что энергия лучше тратится на отчет об ошибках, чем на попытки взлома ... :)