Кто-нибудь знает плагин или скрипт vim для преобразования специальных символов в соответствующие им объекты HTML? - PullRequest
6 голосов
/ 16 июня 2010

Я разрабатываю сайты для корпоративных клиентов, поэтому мы видим символы ®, ™ и т. Д. В целом.Иногда я вставляю огромные блоки копии, которые могут даже содержать красивые кавычки («») или другие странные символы из текстовых процессоров.

Итак, мой вопрос таков: кто-нибудь знает о плагине или скрипте vim, которыеможно одним махом преобразовать все эти символы в html-сущности?

Я думаю, что это охватывает все базы сущностей, которые было бы неплохо иметь: http://web.forret.com/tools/charmap.asp

Итак, длясимволы выше, они будут заменены на ®, ™, “, ” и т. д.

Я попробовал vimball htmlspecialchars (http://www.vim.org/scripts/script.php?script_id=2377),, но без кубиков.выполняет только его замену, например функцию PHP htmlsepcialchars, заменяет конфликтующие с html символы и не распространяется на дополнительные специальные символы.

Ответы [ 4 ]

7 голосов
/ 17 июня 2010

Я бы порекомендовал плагин Тима Попа без изменений .Он предоставляет команды для кодирования и декодирования html-сущностей , используя сопоставления: [x и ]x соответственно.

2 голосов
/ 17 июня 2010

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 в моей системе)

1 голос
/ 16 июня 2010

вы можете сделать это как макрос, что-то вроде этого в вашем .vimrc (я позволю вам заполнить остальные сущности ;-)):

let @a=':%s/á/\á/g^M:%s/é/\é/g^M:%s/í/\í/g^M ... '

обратите внимание, что ^ Mспециальный символ, введенный с помощью Ctrl + V , Ctrl + M .

0 голосов
/ 01 июля 2015

Я был удивлен так же, как и вы, что Vim не может этого сделать, и никакие плагины (даже unimpaired.vim) не могут конвертировать все сущности HTML.

Поэтому я создал плагин !

Использование: в обычном режиме ]he<motion> для преобразования включенного в движение символа в соответствующие им HTML-объекты.Преобразует (почти любой) символ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...