Работа с html entity conceal в файлах FreeMind в 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