Wikia

Vim Tips Wiki

Changes: Generate all Unicode characters

Edit

Back to page

(Minor tweaks.)
(Change <tt> to <code>, perhaps also minor tweak.)
 
Line 3: Line 3:
 
|previous=575
 
|previous=575
 
|next=577
 
|next=577
|created=October 5, 2003
+
|created=2003
 
|complexity=basic
 
|complexity=basic
 
|author=maxiangjiang
 
|author=maxiangjiang
Line 30: Line 30:
 
</pre>
 
</pre>
   
Copy the following into a file, then type <tt>:so %</tt> (source current file) to define the function. Enter <tt>:new</tt> and type <tt>:call&nbsp;GenerateUnicode(0x9900,0x9fff)</tt> (after setting the font and encoding).
+
Copy the following into a file, then type <code>:so %</code> (source current file) to define the function. Enter <code>:new</code> and type <code>:call GenerateUnicode(0x9900,0x9fff)</code> (after setting the font and encoding).
   
 
<pre>
 
<pre>

Latest revision as of 05:36, July 13, 2012

Tip 576 Printable Monobook Previous Next

created 2003 · complexity basic · author maxiangjiang · version 7.0


You can generate a table of Unicode characters in Vim to see how they are displayed by your system. This may be of interest to anyone using CJK characters.

Example The following will add a table showing the characters from hex 9900 to 9fff, inclusive:

:call GenerateUnicode(0x9900, 0x9fff)

Screenshot

CJK

How toEdit

For this to work, you will need:

:set guifont=*         "select a suitable font
:set encoding=utf-8    "set a suitable encoding
:set ambiwidth=double  "for CJK characters (probably not needed)

Copy the following into a file, then type :so % (source current file) to define the function. Enter :new and type :call GenerateUnicode(0x9900,0x9fff) (after setting the font and encoding).

function! GenerateUnicode(first, last)
  let i = a:first
  while i <= a:last
    if (i%256 == 0)
      $put ='----------------------------------------------------'
      $put ='     0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F '
      $put ='----------------------------------------------------'
    endif
    let c = printf('%04X ', i)
    for j in range(16)
      let c = c . nr2char(i) . ' '
      let i += 1
    endfor
    $put =c
  endwhile
endfunction

See alsoEdit

CommentsEdit

Around Wikia's network

Random Wiki