vim特殊字符输入和整理
special character input in vim
本文对使用Vim输入特殊字符的方法进行了简单的介绍,
并对Vim内digraphs(二合字母)所默认定义的特殊字符进行了整理(不显示字符除外),
并包含部分Vim未定义而比较常见的字符。
==
很多字符不能通过普通键盘直接输入,比如 "©","€","ā"…
要输入它们,我们需要利用输入法或软键盘。
而在Vim内,即使不使用输入法,
我们也可以方便的查看和输入特殊字符。
# 查看字符数值
如果是已有文本的对象可以在vim中直接查看。
比如"€", Normal Mode下,在此字符上按下"ga",则会显示
<€> 8364, Hex 20ac, Octal 20254
8364, 20ac 即分别为"€"的十进制数值和十六进制数值。
在'statusline'中也可以设置'%b'或'%B',
显示光标下字符的十进制数值或十六进制数值。
如果没有特殊字符的电子文本,
则需要到 http://unicode.org/charts/ 去查找。
# 使用字符数值 Character Value (:h i_ctrl-v_digit)
第一种方法是输入字符数值,即<Ctrl-V>+u+字符十六进制数值
比如,要输入"€"
我们可以在Insert Mode下通过按下<Ctrl-V>u20ac来输入。
这种方法的缺点在于字符的数值很难记忆。
# 使用键盘映射 (:h mbyte-keymap):
第二种方法是通过键盘映射(keymap)
通过设置'keymap',可以在Insert Mode下直接输入相对应的字母。
比如'set keymap=greek',则我们就可以直接输入希腊字母了。
和使用对应语言的键盘类似,
缺点是默认定义的keymap有限,并且也存在布局和记忆的问题。
# 使用二合字母 (:h digraphs)
第三种方法是通过二合字母(digraphs)。
vim默认拥有(+digraphs)特性,
即在vim的Insert Mode下按下<Ctrl-K>{char1}{char2},
可生成digraphs内相对应的特殊字符。
比如'<Ctrl-K>Eu'则生成 '€',相对输入数值更方便记忆。
对于同一系列的字符,vim的定义更有规律,更方便记忆。
同时也能自己定义需要的字符。
其缺点在于多种字符定义之间可能存在意义上的冲突,
最好能在不同的情况下使用不同的digraphs定义。
# 定义二合字母
Vim默认定义的二合字母是有限的,可以通过
:dig[raphs] {char1}{char2} {number} ...
来定义新的二合字母, {number}为字符的十进制数值。
比如定义'₨'为Rs,其十进制数值为8360,则
:digraphs Rs 8360
下文中的uxxxx是字符的十六进制数值,定义时需要转化为十进制。
# easydigraph.vim
这是我的一个插件 https://github.com/Rykka/easydigraph.vim
可以将{motion}范围内的字符通过vim的digraphs转化为特殊字符。
这在输入连续的特殊字符,比如日文、希腊文等文字时,
相比每输入一个字符都要按下<Ctrl-K>更加便捷。
比如:
'o5hayou5 gozai5masu'
可以直接通过 easydigraph的默认快捷键 '<leader>bb'以及动作'3iw'
转化为 'おはよう ございます'
另:
当前缀字符为 '\' 时,如'\\','\a' 字符将保持不变,
唯一的例外为 '\/' (至vim7.3)
这在转化包含普通字符的digraph时有用。
比如在 '\(\2\+\32SnS\)' 上按键'<leader>bbiW' 会转化为 '(2+3²ⁿ)'
==
Fm ♀ Ml ♂
Eh ⌂ TR ⌕
SM ℠ TM ™
Co © Rg ®
PO ℗
oC ℃ oF ℉
%0 ‰ u2031 ‱
N0 №
Om Ω AO Å
co ℅ Rx ℞ My µ
# Currency:
Cu ¤ Pt ₧ W= ₩
Eu € Li ₤ Pd £ Ct ¢ Ye ¥
₳ ฿ ₵ ¢ ₡ ₢ ₠ $ ₫ ₯ € ƒ ₣ ₲ ₴ ₭ ℳ ₥ ₦ ₧ ₱ ₰ £ ₹ ₨ ₪ ₸ ₮
http://en.wikipedia.org/wiki/Currency_sign
====
# Music:
Md ♩ M8 ♪ M2 ♫ u266c ♬
Mb ♭ Mx ♮ MX ♯
# Weather:
u2600 ☀ u2601 ☁ u2602 ☂ u2603 ☃
SU ☼ u263d ☽ u263e ☾
*1 ☆ *2 ★
# Face:
0u ☺ 0U ☻ u2639 ☹
<H ☜ >H ☞ u261d ☝ u261f ☟
OK ✓ XX ✗
u2611 ☑ u2612 ☒ u2610 ☐
cS ♠ cH ♡ cD ♢ cC ♣
u2664 ♤ u2665 ♥ u2666 ♦ u2667 ♧
# Signs:
u2621 ☡ u2622 ☢ u2623 ☣
u2672 ♲ u267b ♻ u267e ♾
u26a0 ⚠ u267f ♿ u26a1 ⚡
# Religions:
u271d ✝ u2625 ☥ u262a ☪ u2624 ☤
u262b ☫ u262c ☬ u262D ☭
u262e ☮ u262f ☯
-X ✠
# Terms:
u2692 ⚒ u2694 ⚔
u2693 ⚓ u2695 ⚕ u2696 ⚖ u269a ⚚
u2697 ⚗ u2698 ⚘ u2699 ⚙ u269b ⚛
See http://en.wikipedia.org/wiki/Miscellaneous_Symbols
==
# Roman numeral:
1R Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ
1r ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ ⅺ ⅻ
# Chinese numeral:
1c ㈠ ㈡ ㈢ ㈣ ㈤ ㈥ ㈦ ㈧ ㈨
# Digit with Full Stop:
1. ⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐
# Fraction:
12 ½ ⅓ ⅔ ¼ ¾ ⅕ ⅖ ⅗ ⅘ ⅙ ⅛
# Arrow:
<= ⇐ => ⇒ == ⇔
<- ← -> → <> ↔ -! ↑ -v ↓ UD ↕
AN ∧ OR ∨ NO ¬
+- ± -+ ∓ -2 −
*- ∗ *X × -: ÷ /f ⁄
RT √ u221b ∛ u221c ∜
.P ⋅ Ob ∘ Sb ∙
u2295 ⊕ u2296 ⊖ u2297 ⊗ u2298 ⊘
0. ⊙ 02 ⊚ u229b ⊛ u229c ⊜
00 ∞
0( ∝
/0 ∅
FA ∀ dP ∂ TE ∃ u2204 ∄
DE ∆ NB ∇
*P ∏ +Z ∑
# SET:
(- ∈ )- ∋
u2209 ∉ u220c ∌
(U ∩ )U ∪
(C ⊂ )C ⊃ (_ ⊆ )_ ⊇
u2284 ⊄ u2285 ⊅ u2288 ⊈ u2289 ⊉
# Geometry:
-L ∟ -V ∠ PP ∥ DG ° (A ⌒
u2221 ∡ u2222 ∢ u2226 ∦
-T ⊥ u22A4 ⊤
u22a2 ⊢ u22a3 ⊣
# Calculas:
In ∫ DI ∬ u222d ∭
Io ∮ u222f ∯ u2230 ∰
Iu ⌠ <7 ⌈ >7 ⌉
Il ⌡ 7< ⌊ 7> ⌋
</ 〈 >/ 〉
.: ∴ :. ∵ :R ∶ :: ∷
?1 ∼ CG ∾
?= ≃ ?= ≅ ?2 ≈ HI ≓ =3 ≡
=< ≤ >= ≥ <* ≪ >* ≫ !> ≯ !< ≮
# Super Script
0S1S2S3S4S5S6S7S8S9S +S-S=S(S)S nS
⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁺ ⁻ ⁼ ⁽ ⁾ ⁿ
u2071 ⁱ
# Sub Script
0s1s2s3s4s5s6s7s8s9s +s-s=s(s)s
₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎
u2090 ₐ u2091 ₑ u2092 ₒ u2093 ₓ u2094 ₔ u2095 ₕ
u2096 ₖ u2097 ₗ u2098 ₘ u2099 ₙ u209a ₚ u209b ₛ u209c ₜ
# PRIME:
1'2'3' u2057
′ ″ ‴ ⁗
# REVERSED PRIME:
1"2"3"
‵ ‶ ‷
See http://en.wikipedia.org/wiki/Mathematical_operators_and_symbols_in_Unicode
==
====
# 读音符号 DIACRITIC
Acute accent : '' ´ á ć é ǵ í ḱ ĺ ḿ ń ó ṕ ŕ ś ú ẃ ý ź
Grave : '! ` à è ì ò ù ẁ ỳ
Circumflex : '> ^ â ĉ ê ĝ ĥ î ĵ ô ŝ û ŵ ŷ ẑ
Tilde : '? ~ ã ẽ ĩ ñ õ ũ ṽ ỹ
Macron ('m ¯) : a- ā ē ḡ ī ō ū
Breve : '( ˘ ă ĕ ğ ĭ ŏ ŭ
Dot : '. ˙ ḃ ċ ḋ ė ḟ ġ ḣ ı ŀ ṁ ṅ ṗ ṙ ṡ ṫ ẇ ẋ ẏ ż
Diaeresis : ': ¨ ä ë ḧ ï ö ẗ ü ẅ ẍ ÿ
Cedilla : ', ¸ ç ḑ ģ ḩ ķ ļ ņ ŗ ş ţ
Underline : '_ _ ḇ ḏ ẖ ḵ ḻ ṉ ṟ ṯ ẕ
Stroke : '/ / đ ǥ ħ ł ø ŧ ƶ
Double acute accent : '" ˝ ő ű
Ogonek : '; ˛ ą ę į ǫ ų
Caron : '< ˇ ǎ č ď ě ǧ ǐ ǰ ǩ ľ ň ǒ ř š ť ǔ ž
Ring above : '0 ˚ ů ẘ ẙ
Hook : a2 ả ẻ ỉ ỏ ủ ỷ
Horn : o9 ơ ư
See http://en.wikipedia.org/wiki/Diacritical_marks
# 特殊 special
NG Ŋ ng ŋ
'n ʼn
D- Ð d- ð
ED Ʒ u0292 ʒ
EZ Ǯ ez ǯ
yr Ʀ
kk ĸ
TH Þ th þ
ss ß
AA Å AE Æ
aa å ae æ
A1 Ǟ A3 Ǣ A7 Ǡ
a1 ǟ a3 ǣ a7 ǡ
O1 Ǭ
o1 ǭ
# 连字 LIGATURE
OE Œ oe œ
OI Ƣ oi ƣ
IJ IJ ij ij
ff ff fi fi fl fl ft ſt st st
u1d6b ᵫ
ufb03 ffi ufb04 ffl
See http://en.wikipedia.org/wiki/Typographic_ligature
====
A*B*G*D*E*Z*Y*H*I*K*L*M*N*C*O*P*R*S*T*U*F*X*Q*W*J*V*
Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ
a*b*g*d*e*z*y*h*i*k*l*m*n*c*o*p*r*s*t*u*f*x*q*w*j*v* *s
α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω ϊ ϋ ς
a%e%y%i%o%u%w% u3 j3 '%
ά έ ή ί ό ύ ώ ΰ ϵ ϴ
T3M3K3P3 'G
Ϛ Ϝ Ϟ Ϡ Ϙ
t3m3k3p3 ,G
ϛ ϝ ϟ ϡ ϙ
;',';!,!?;?,!:?:
ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ
====
A=B=V=G=D=E=Z=I=J=K=L=M=O=P=R=S=T=U=F=H=C=Y=
А Б В Г Д Е З И Й К Л М О П Р С Т У Ф Х Ц Ы
a=b=v=g=d=e=z=i=j=k=l=m=o=p=r=s=t=u=f=h=c=y=
а б в г д е з и й к л м о п р с т у ф х ц ы
IOIEDSIIYILJNJTsKJDZSc JEJUJA D%G%J%V%Z%C%S%
Ё Є Ѕ І Ї Љ Њ Ћ Ќ Џ Щ Э Ю Я Ђ Ѓ Ј Ў Ж Ч Ш
ioiedsiiyiljnjtskjdzsc jejuja d%g%j%v%z%c%s%
ё є ѕ і ї љ њ ћ ќ џ щ э ю я ђ ѓ ј ў ж ч ш
Y3O3F3V3C3G3 ="%"
Ѣ Ѫ Ѳ Ѵ Ҁ Ґ Ъ Ь
y3o3f3v3c3g3 ='%'
ѣ ѫ ѳ ѵ ҁ ґ ъ ь
====
A+B+G+D+H+W+Z+X+J+K+L+M+N+S+E+P+Q+R+T+
א ב ג ד ה ו ז ח י כ ל מ נ ס ע פ ק ר ת
TjZjZJSh K%M%N%P%
ט ץ צ ש ך ם ן ף
====
注:在某些浏览器上可能从左至右显示。
a+b+t+g+x+d+r+z+s+c+e+i+f+q+k+l+m+n+h+w+j+y+
ا ب ت ج خ د ر ز س ص ع غ ف ق ك ل م ن ه و ى ي
H'aMaHwHahyHtmtkhkdksnddtjzH aSp+v+gf ,+;+?+ ++
ء آ أ ؤ إ ئ ة ث ح ذ ش ض ط ظ ٰ پ ڤ گ ، ؛ ؟ ـ
:+"+=+/+'+ 1+3+0+
ً ٌ ٍ َ ُ ِ ّ ْ
0a1a2a3a4a5a6a7a8a9a
۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹
====
a5i5u5e5o5 A6I6U6E6O6
あいうえお アイウエオ
A5I5U5E5O5 a6i6u6e6o6
ぁぃぅぇぉ ァィゥェォ
kakikukeko KaKiKuKeKo
かきくけこ カキクケコ
( rmhntsk bpdzg )
( wawiwewo yayuyo )
vu VaViVeVo
ゔ ヷヸヹヺ
WA YAYUYO KAKE
ヮ ャュョ ヵヶ
n5*5+5"505 N6*6+6-6.6
んゝゞ゛゜ ンヽヾー・
*_ 々 u4edd 仝
-? ,_ ._ IS +"
〜 、 。 〃
<+>+ <'>' <">" (")" (')' (I)I
《》「 」『 』【 】 〔〕 〖〗
+_ ;_ 0_ =_
〄 〆 〇 〓
=T 〒 u3036 〶
====
b4p4m4f4d4t4n4l4 g4k4h4j4q4x4 zhchshr4 z4c4s4
ㄅㄆㄇㄈㄉㄊㄋㄌ ㄍㄎㄏㄐㄑㄒ ㄓㄔㄕㄖ ㄗㄘㄙ
a4o4e4aieiauou anenaNeNer i4u4iuv4nGgn
ㄚㄛㄜㄞㄟㄠㄡ ㄢㄣㄤㄥㄦ ㄧㄨㄩㄪㄫㄬ
====
1. a- ā ē ī ō ū
2. a' á é í ó ú
3. a< ǎ ě ǐ ǒ ǔ
4. a` à è ì ò ù
u01d6 ǖ u01d8 ǘ u01da ǚ u01dc ǜ
可通过<Ctrl-V>输入,也可在vimrc中定义digraphs:
" v- ǖ v' ǘ v< ǚ v` ǜ
digraphs v- 470 v' 472 v< 474 v` 476
# 不常用:
e> ê (ei)
z> ẑ c> ĉ s> ŝ (zh,ch,sh)
ng ŋ (ng)
==
:X ※ SE §
PI ¶ u204B ⁋
.. ‥ NS BB ¦
Vs ␣ .M ·
'- ‾
Ca ‸
u25cc ◌
-N – -M —
:3 ⋮ .3 ⋯
=2 ‗ !2 ‖
# Dagger:
/- † /= ‡
?I ¿ !I ¡ u2E2E ⸮
# Ordinal Indicator:
-o º -a ª
<< « >> » <1 ‹ >1 ›
# Quotation Mark:
'6'99' "6"99" .9:9
‘ ’ ‛ “ ” ‟ ‚ „
====
0m0o0M0L0RSnIc UTuTPRTrDtdTPLTl sBSROrDbDwLZFdBd
○ ◎ ● ◐ ◑ ◘ ◙ ▲ △ ▶ ▷ ▼ ▽ ◀ ◁ ▪ ▬ ▭ ◆ ◇ ◊ ◢ ◣
# Block:
TBLBFBlBRB .S:S?SfSOS RORrRFRYRHRZRKRX
▀ ▄ █ ▌ ▐ ░ ▒ ▓ ■ □ ▢ ▣ ▤ ▥ ▦ ▧ ▨ ▩
# Box Drawing:
hhHHvvVV
─ ━ │ ┃
drdRDrDR dldLDlLD uruRUrUR uluLUlUL vrvRVrVR
┌ ┍ ┎ ┏ ┐ ┑ ┒ ┓ └ ┕ ┖ ┗ ┘ ┙ ┚ ┛ ├ ┝ ┠ ┣
vlvLVlVL dhdHDhDH uhuHUhUH vhvHVhVH
┤ ┥ ┨ ┫ ┬ ┯ ┰ ┳ ┴ ┷ ┸ ┻ ┼ ┿ ╂ ╋
FDBD
╱ ╲
3- ┄ 4- ┈
3! ┆ 4! ┊
3/ ┇ 4/ ┋
3_ ┅ 4_ ┉
# OCR SYMBOL
1h2h3h4h 1j2j3j4j
⑀ ⑂ ⑁ ⑃ ⑆ ⑇ ⑈ ⑉