Yuriy Al. Shirokov (yushi) wrote in ru_emacs,
Yuriy Al. Shirokov
yushi
ru_emacs

[SOLVED] Сломались ссылки на заголовки в org-mode

Здравствуйте.

Создал довольно большой файл в org-mode. Некоторое время всё работало, а потом сломались ссылки на заголовки:

  • при нажатии C-c C-o получаю сообщение "No match - create this as a new heading? (y or n)";

  • если согласиться, создаётся заголовок с пробелом после первой звёздочки: "* ** Вот такой";

  • если, стоя на заголовке, дать команду org-store-link, а потом создать ссылку через C-c C-l, имя заголовка оказывается в URL encoding, например, "*%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D0%BA" вместо "* Тестовый заголовок".

Особенности моих настроек системы и Emacs, которые могут иметь значение:

  • локаль koi8-r, файл в utf-8-unix;

  • совместно с org-mode использую longlines-mode и iimage-mode;

  • незадолго до появления глюка обновил org-mode с версии 6.28d на версию 7.7.

Что бы можно было сделать? Файл жалко, в нём много важной информации. Откатываться назад на 6.28d тоже не хочется, там нет команды org-display-inline-images, а мне эта фича (отображение картинок) очень приглянулась.

UPD Проблема решена, надо внимательнее курить ман.

Звёздочка в ссылке — это не точная ссылка на заголовок, а поиск в файле по содержимому заголовков. Поэтому, чтобы сослаться на заголовок любого уровня, достаточно написать *Имя заголовка, с одной звёздочкой. И если старая версия org-mode неправильные ссылки как-то обрабатывала, то новая перестала. URL encoding же оказалась возможной, но не обязательной — ссылки с нормальным текстом тоже работают.

Перешёл на новый формат ссылок командой:
sed -i 's/\[\[\*\{1,4\} /\[\[*/g' имя_org-файла.org
(Осторожно! Это запуск sed в inplace-режиме, если вы не храните ваш org-файл в системе контроля версий, он произведёт необратимые и, возможно, неожиданные для вас изменения — не говорите потом, что вас не предупреждали.)
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

  • 0 comments