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-файл в системе контроля версий, он произведёт необратимые и, возможно, неожиданные для вас изменения — не говорите потом, что вас не предупреждали.)
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments