Я разрабатываю веб-сайты для корпоративных клиентов, таким образом, мы видим ®, ™, и т.д. символы много. Иногда я вставляю в огромных блоках копии, которая могла бы даже содержать симпатичные кавычки (“”) или другие странные символы от текстовых процессоров.
Так, мой вопрос - это: кто-либо знает о плагине энергии или сценарии, который может, одним махом, преобразовать все эти символы в объекты HTML?
Я думаю, что это покрывает все основания объектов, которые было бы хорошо иметь: http://web.forret.com/tools/charmap.asp
Так, для символов выше, они были бы заменены ®
, ™
, “
, ”
, и т.д.
Я попробовал htmlspecialchars vimball (http://www.vim.org/scripts/script.php?script_id=2377), но провал. Это только выполняет свою замену как PHP htmlsepcialchars функция, заменяя конфликтующие HTML символы, и не покрывает дополнительных специальных символов.
Я бы порекомендовал исправный плагин Тима Поупа. Он предоставляет команды для кодирования и декодирования HTML-объектов , используя сопоставления: [x
и ] x
соответственно.
Perl лучше подходит для такого рода вещей. Вставьте свой файл в vim и запустите следующее:
:%!perl -p -i -e 'BEGIN { use Encode; } $_=Encode::decode_utf8($_) unless Encode::is_utf8($_); $_=Encode::encode("ascii", $_, Encode::FB_HTMLCREF);'
Или даже лучше:
%!perl -p -i -e 'BEGIN { use HTML::Entities; use Encode; } $_=Encode::decode_utf8($_) unless Encode::is_utf8($_); $_=Encode::encode("ascii", $_, sub{HTML::Entities::encode_entities(chr shift)});'
(HTML :: Entities является частью HTML :: Parser в моей системе)
вы можете сделать это как макрос, что-то вроде этого в вашем .vimrc (я позволю вам заполнить остальные объекты ;-)):
let @a=':%s/á/\á/g^M:%s/é/\é/g^M:%s/í/\í/g^M ... '
обратите внимание, что ^ M - специальный символ, вводимый с помощью Ctrl + V , Ctrl + M .