(→Simple search & replace: use & entity so we show the desired text) |
(Adjust previous/next navigation + minor manual clean) |
||
Line 3: | Line 3: | ||
|previous=1004 |
|previous=1004 |
||
|next=1007 |
|next=1007 |
||
− | |created= |
+ | |created=2005 |
|complexity=basic |
|complexity=basic |
||
|author=Jos van den Oever |
|author=Jos van den Oever |
||
Line 17: | Line 17: | ||
Note that this does not escape all characters that should be escaped, just the most common. |
Note that this does not escape all characters that should be escaped, just the most common. |
||
− | |||
<pre> |
<pre> |
||
function HtmlEscape() |
function HtmlEscape() |
||
Line 48: | Line 47: | ||
A slightly more complex solution that escape all characters is using perl, you will need [http://www.perl.org/ perl] and [http://search.cpan.org/dist/HTML-Parser/ HTML-Parser] |
A slightly more complex solution that escape all characters is using perl, you will need [http://www.perl.org/ perl] and [http://search.cpan.org/dist/HTML-Parser/ HTML-Parser] |
||
− | |||
<pre> |
<pre> |
||
function! HTMLEncode() |
function! HTMLEncode() |
||
Line 77: | Line 75: | ||
==Comments== |
==Comments== |
||
⚫ | |||
− | |||
+ | <pre> |
||
⚫ | |||
⚫ | |||
− | |||
+ | </pre> |
||
⚫ |
Revision as of 11:28, 17 June 2010
created 2005 · complexity basic · author Jos van den Oever · version 5.7
There are several ways to deal with HTML entities.
Simple search & replace
This code allows you to escape your HTML entities with one shortcut key: Change (<, >, &) to (<, >, &), or the reverse.
Note that this does not escape all characters that should be escaped, just the most common.
function HtmlEscape() silent s/&/\&/eg silent s/</\</eg silent s/>/\>/eg endfunction function HtmlUnEscape() silent s/</</eg silent s/>/>/eg silent s/&/\&/eg endfunction map <silent> <c-h> :call HtmlEscape()<CR> map <silent> <c-u> :call HtmlUnEscape()<CR>
If you add this code to your vimrc, you can escape visually-selected HTML with ctrl-h, and unescape with ctrl-u.
Automagic escaping
There's also script that does this for you automagically when you read and write files, so you can view the characters, and write the codes, or vice versa: script#909.
Originally written for Java unicodes, but there is also a setting for html codes.
The script is for &nnn style encoding, not the html entities.
perl HTML::Entities
Note: Vim needs to compiled with the "perl" feature enabled for this to work
A slightly more complex solution that escape all characters is using perl, you will need perl and HTML-Parser
function! HTMLEncode() perl << EOF use HTML::Entities; @pos = $curwin->Cursor(); $line = $curbuf->Get($pos[0]); $encvalue = encode_entities($line); $curbuf->Set($pos[0],$encvalue) EOF endfunction function! HTMLDecode() perl << EOF use HTML::Entities; @pos = $curwin->Cursor(); $line = $curbuf->Get($pos[0]); $encvalue = decode_entities($line); $curbuf->Set($pos[0],$encvalue) EOF endfunction map <Leader>h :call HTMLEncode()<CR> map <Leader>H :call HTMLDecode()<CR>
Go to the line and do \h or \H to check it out.
Comments
Can check it with:
.! php -r "echo htmlentities('<cword>');"