Работа с html entity conceal в файлах FreeMind в vim

Я довольно активно пользуюсь программой FreeMind для составления ментальных карт при анализе чего-либо, имеющем много свойств и/или неочевидных зависимостей. Как-то раз мне понадобилось расставить у трёх десятков узлов ссылки на внешние ресурсы. Расставлять их в самой FreeMind мне показалось очень неудобно и я решил это сделать в vim. Открыв файл схемы в редакторе, я был неприятно удивлён: русский текст в атрибутах xml был завёрнут в html entity вида TEXT="& #x420;& #x430;& #x437;& #x443;& #x43c;" Я подумал, что vim просто обязан уметь показывать этакую абракадабру в читаемом виде.

Я довольно активно пользуюсь программой FreeMind для составления ментальных карт при анализе чего-либо, имеющем много свойств и/или неочевидных зависимостей.

Как-то раз мне понадобилось расставить у трёх десятков узлов ссылки на внешние ресурсы. Расставлять их в самой FreeMind мне показалось очень неудобно и я решил это сделать в vim. Открыв файл схемы в редакторе, я был неприятно удивлён: русский текст в атрибутах xml был завёрнут в html entity вида

 TEXT="Разум"

Я подумал, что vim просто обязан уметь показывать этакую абракадабру в читаемом виде. Довольно быстро нашёлся плагин unicodeswitch, который, видимо, решал именно эту проблему.

К моему немалому удивлению, после установки плагина и несложной настройки “по README” оказалось недостаточно – работать плагин не пожелал.

Примерно через полчаса экспериментов и чтения текста плагина я осознал, что автор плагина предусмотрел, что кодирование символов во всяческие entity (ещё это называют conceal) возможно весьма по-всякому, и оставил в тексте плагина около десяти переменных для тонкой подстройки.

Дальнейшее, как говорится, дело техники. Минут через пятнадцать я составил в .vimrc вот такой фрагмент кода:

let g:ucs_encode_html = 1
let g:ucs_prefix = '&\#'
let g:ucs_encodematch = '\x\{1,3}'
let g:ucs_suffix = ';'
let g:ucs_is_hex = 1
let g:ucs_is_octal = 0
let g:ucs_filetype = '*.mm'
let g:ucs_digits = 3

После этого vim при открытии файлов *.mm от FreeMind стал показывать кракозябры html entity в читаемом виде.

Судя по документации, плагин умеет при сохранении текста преобразовывать русские буквы обратно в entity, но сходу у меня это не заработало, а FreeMind прекрасно понимала и обычный не-conceal-изированный текст, так что я вполне удовлетворился уже достигнутым.

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.