cht電腦資訊編輯器Vim
adm Find login register

用 vim 輸入 unicode

coolcd
joined: 2008-01-21
posted: 2601
promoted: 348
bookmarked: 95
1subject: 用 vim 輸入 unicodePromote 0 Bookmark 12010-10-26quote  

wikipedia 發現,原來 vim 支援 RFC 1345 中兩個字母的易記輸入方式,用法是,在 Insert Mode 按 Ctrl + K,輸入兩個字母,就可以輸入他們所代表的特殊符號。

譬如:

 b4     3105    BOPOMOFO LETTER B
p4 3106 BOPOMOFO LETTER P
m4 3107 BOPOMOFO LETTER M
f4 3108 BOPOMOFO LETTER F
d4 3109 BOPOMOFO LETTER D
t4 310a BOPOMOFO LETTER T
n4 310b BOPOMOFO LETTER N
l4 310c BOPOMOFO LETTER L
g4 310d BOPOMOFO LETTER G
k4 310e BOPOMOFO LETTER K
h4 310f BOPOMOFO LETTER H
j4 3110 BOPOMOFO LETTER J
q4 3111 BOPOMOFO LETTER Q
x4 3112 BOPOMOFO LETTER X
zh 3113 BOPOMOFO LETTER ZH
ch 3114 BOPOMOFO LETTER CH
sh 3115 BOPOMOFO LETTER SH
r4 3116 BOPOMOFO LETTER R
z4 3117 BOPOMOFO LETTER Z
c4 3118 BOPOMOFO LETTER C
s4 3119 BOPOMOFO LETTER S
a4 311a BOPOMOFO LETTER A
o4 311b BOPOMOFO LETTER O
e4 311c BOPOMOFO LETTER E
eh4 311d BOPOMOFO LETTER EH
ai 311e BOPOMOFO LETTER AI
ei 311f BOPOMOFO LETTER EI
au 3120 BOPOMOFO LETTER AU
ou 3121 BOPOMOFO LETTER OU
an 3122 BOPOMOFO LETTER AN
en 3123 BOPOMOFO LETTER EN
aN 3124 BOPOMOFO LETTER ANG
eN 3125 BOPOMOFO LETTER ENG
er 3126 BOPOMOFO LETTER ER
i4 3127 BOPOMOFO LETTER I
u4 3128 BOPOMOFO LETTER U
iu 3129 BOPOMOFO LETTER IU
v4 312a BOPOMOFO LETTER V
nG 312b BOPOMOFO LETTER NG
gn 312c BOPOMOFO LETTER GN

支援的字母,可用 :digraphs 看,詳細說明可看 :h digraphs

coolcd
joined: 2008-01-21
posted: 2601
promoted: 348
bookmarked: 95
2subject: Promote 0 Bookmark 12010-10-27quote  
  • 如果想輸入任意 unicode 字元,可以在 Insert Mode 按 Ctrl+V,再輸入 uXXXX,XXXX 是 unicode 的編碼。
    • 譬如:想輸入「❤」(U+2764),先按 i 切換到 insert mode,按 Ctrl-V (在 Windows 按 Ctrl-Q),再輸入 u2764 即可。
    • Ctrl-V 後直接打數字,會以十進位 (0-255) 來解讀數字;加 o/O 後可接八進位數字 0-377;加 x/X 後可接十六進位數字 00-ff;加 u 後可接十六進位數字 0-ffff;加 U 後可接十六進位數字 0-7fffffff。
  • 如果想輸入 digraph,除了之前 Ctrl-k 的方式,也可以 :set digraph,然後即可用 <char1><bs><char2> 輸入 digraph。
    • 例如:先按 o,按 backspace,再輸入 : (shift + ;),即可輸入 ö。
    • RFC 1345 沒有歐元符號,vim 自已設了, =<bs>e 或 E<bs>u 可輸入 €。
  • 如果想顯示某個字元的編碼,在 Normal Mode 下將游標移到字元上,按 ga,即可在 status bar 顯示字元的編碼。
coolcd
joined: 2008-01-21
posted: 2601
promoted: 348
bookmarked: 95
3subject: Promote 0 Bookmark 02011-04-09quote  

最近在研究拼音,許多拼音系統都需要在韻母上標聲調,以下整理出漢語拼音用到的 unicode 及如何在 vim 輸入。

unicode 字碼我參考的來源是 特別編製的獨家的「30個帶音調漢語拼音字母及ɑ﹑ɡ」一覽表

Unicode	帶調韻母    輸入方式
U+0101	ā   i_Ctrl-k a-
U+00E1	á   i_Ctrl-k a'
U+01CE	ǎ   i_Ctrl-k a<
U+00E0	à   i_Ctrl-k a`
U+00E9	é   i_Ctrl-k e'
U+011B	ě   i_Ctrl-k e<
U+00E8	è   i_Ctrl-k e`
U+012B	ī   i_Ctrl-k i-
U+00ED	í   i_Ctrl-k i'
U+01D0	ǐ   i_Ctrl-k i<
U+00EC	ì   i_Ctrl-k i`
U+014D	ō   i_Ctrl-k o-
U+00F3	ó   i_Ctrl-k o'
U+01D2	ǒ   i_Ctrl-k o<
U+00F2	ò   i_Ctrl-k o`
U+016B	ū   i_Ctrl-k u-
U+00FA	ú   i_Ctrl-k u'
U+01D4	ǔ   i_Ctrl-k u<
U+00F9	ù   i_Ctrl-k u`
U+01D6	ǖ   i_Ctrl-v u 01d6 (在 Windows i_Ctrl-v 要改按 i_Ctrl-q)
U+01D8	ǘ   i_Ctrl-v u 01d8 (在 Windows i_Ctrl-v 要改按 i_Ctrl-q)
U+01DA	ǚ   i_Ctrl-v u 01da (在 Windows i_Ctrl-v 要改按 i_Ctrl-q)
U+01DC	ǜ   i_Ctrl-v u 01dc (在 Windows i_Ctrl-v 要改按 i_Ctrl-q)
U+00FC	ü   i_Ctrl-k u:
U+00EA	ê   i_Ctrl-k e>
U+0251	ɑ   i_Ctrl-v u 0251 (在 Windows i_Ctrl-v 要改按 i_Ctrl-q)
(i_Ctrl-k ap 應該輸入此字元,但vim沒有實作,可自訂 :digraph ap 593) U+E7C7  i_Ctrl-v u e7c7 (在 Windows i_Ctrl-v 要改按 i_Ctrl-q)(i_Ctrl-k m' 輸入的ḿ是U+1E3F) U+0144 ń i_Ctrl-k n' U+0148 ň i_Ctrl-k n< U+E7C8  i_Ctrl-v u e7c8 (在 Windows i_Ctrl-v 要改按 i_Ctrl-q) U+0261 ɡ i_Ctrl-v u 0261 (在 Windows i_Ctrl-v 要改按i_Ctrl-q)
(i_Ctrl-k ap 應該輸入此字元,但vim沒有實作,可自訂 :digraph gp 609)
edited: 2
eliu

joined: 2007-08-09
posted: 11473
promoted: 617
bookmarked: 187
新竹, 台灣
4subject: Promote 0 Bookmark 02011-04-09quote  

搞不好把 gcin 的 ctrl-shift 循環設定好用 latin-letters 輸入法輸入可能會更容易 Laughing

coolcd
joined: 2008-01-21
posted: 2601
promoted: 348
bookmarked: 95
5subject: Promote 0 Bookmark 02011-04-09quote  

eliu

搞不好把 gcin 的 ctrl-shift 循環設定好用 latin-letters 輸入法輸入可能會更容易 Laughing

我有試過 latin-letters,有缺字

如果可以把上面的都加進去當然很好 Laughing

以下是缺的字(特別注意 ă 和 ǎ 不同)

U+01CE	ǎ   i_Ctrl-k a<
U+01D0	ǐ   i_Ctrl-k i<
U+01D2	ǒ   i_Ctrl-k o<
U+01D4	ǔ   i_Ctrl-k u<
U+01D6	ǖ   i_Ctrl-v u 01d6 (在 Windows i_Ctrl-v 要改按 i_Ctrl-q)
U+01D8	ǘ   i_Ctrl-v u 01d8 (在 Windows i_Ctrl-v 要改按 i_Ctrl-q)
U+01DA	ǚ   i_Ctrl-v u 01da (在 Windows i_Ctrl-v 要改按 i_Ctrl-q)
U+01DC	ǜ   i_Ctrl-v u 01dc (在 Windows i_Ctrl-v 要改按 i_Ctrl-q)
U+0251	ɑ   i_Ctrl-v u 0251 (在 Windows i_Ctrl-v 要改按 i_Ctrl-q)(i_Ctrl-k ap 應該輸入此字元,但vim沒有實作,可自訂 :digraph ap 593)
U+E7C7	   i_Ctrl-v u e7c7 (在 Windows i_Ctrl-v 要改按
i_Ctrl-q)(i_Ctrl-k m' 輸入的ḿ是U+1E3F)
U+E7C8	   i_Ctrl-v u E7C8 (在 Windows i_Ctrl-v 要改按 i_Ctrl-q)
U+0261	ɡ   i_Ctrl-v u 0261 (在 Windows i_Ctrl-v 要改按i_Ctrl-q)(i_Ctrl-k ap 應該輸入此字元,但vim沒有實作,可自訂 :digraph gp 609)
edited: 2
eliu

joined: 2007-08-09
posted: 11473
promoted: 617
bookmarked: 187
新竹, 台灣
6subject: Promote 0 Bookmark 02011-04-09quote  

沒想到 latin letters 有那麼多種

eliu

joined: 2007-08-09
posted: 11473
promoted: 617
bookmarked: 187
新竹, 台灣
7subject: Promote 0 Bookmark 02011-04-09quote  

已經加在 pre8 了

coolcd
joined: 2008-01-21
posted: 2601
promoted: 348
bookmarked: 95
8subject: Promote 0 Bookmark 02011-04-09quote  

謝謝,這樣會方便很多,也適用其他軟體 Smile

e201302012123@gmail.com
joined: 2013-05-26
posted: 125
promoted:
bookmarked:
杭州
9subject: Promote 0 Bookmark 02021-06-26quote  

原来vim還有這個功能,我用vim這麼多年都不知道。

 

我想知道vim有沒有查詢unicode的功能呢。

cht電腦資訊編輯器Vim
adm Find login register
views:31772