VIM输入特殊字符

  • Post author:
  • Post category:其他


VIM输入特殊字符

二合字母

digraph


digraphs


Digraphs

二合字母用来输入不能用普通键盘输入的字符。它们通常是可显示的非 ASCII 字符。二

合字母比用 CTRL-V 输入十进制编码更方便记忆 (见 |i_CTRL-V|)。

用户手册 |24.9| 有二合字母的简短介绍。一个替代方案是用 ‘keymap’ 选项。

  1. 定义二合字母 |digraphs-define|
  2. 使用二合字母 |digraphs-use|
  3. 缺省的二合字母 |digraphs-default|

{Vi 没有这些命令}

  1. 定义二合字母

    digraphs-define



    :dig


    :digraphs


    :dig[raphs] 显示当前定义的二合字母。


    E104


    E39


    :dig[raphs] {char1}{char2} {number} …

    把二合字母 {char1}{char2} 加入列表。{number} 是字符的

    十进制表示形式。例如:

    :digr e: 235 a: 228

    避免定义 ‘_’ (下划线) 开头的二合字母,将来它会有特殊的

    含义。

Vim 通常编译时带有 |+digraphs| 特性。如果没有,”:digraph” 命令会显示错误信息。

“:digraphs” 输出的例子:

TH T 222 ss ? 223 a! à 224 a’ á 225 a> a 226 a? ? 227 a: ? 228

每列 (译者注: “TH T 222” 称为一列) 前两个字符是你用来输入二合字母的两个字符。

每列的中间是产生的字符。如果你用不支持二合字母的系统察看或者打印,它们可能是乱

码。


digraph-encoding


通常,十进制表示形式是字符的 Unicode 数值。注意 ‘encoding’ 改变的时候该数值并

不改变。如果需要,字符从 Unicode 转换为 ‘encoding’。这需要该转换确实能实现,有

时并非如此。NUL 字符会显示为 “10”,这是因为 NUL 字符内部用 NL 字符表示。写回文

件时它会还原为 NUL 字符的。

如果 Vim 编译时没有 +multi_byte 特性,你需要指定该字符在 ‘encoding’ 里的编码。

可以这样使用:

if has(“multi_byte”)

digraph oe 339

elseif &encoding == “iso-8859-15”

digraph oe 189

endif

这样,“oe” 二合字母在 Unicode 里使用数值 339,而在 latin9 (iso-8859-15) 里使用

数值 189。

2. 使用二合字母

digraphs-use


有两个方法输入二合字母:

i_digraph


CTRL-K {char1} {char2} 或

{char1} {char2}

第一个方法总是可以用的;第二个方法只有在 ‘digraph’ 选项置位的时候才可用。

如果二合字母 {char1}{char2} 不存在,Vim 会搜索二合字母 {char2}{char1}。这样,

即使你不记得何者在前,也能输入。

注意 如果输入 CTRL-K {char1} 时,{char1} 是特殊键,Vim 只会输入该键的编码。这

就不是输入二合字母了。

一旦你输入了二合字母,Vim 把该字符当成占据文件和屏幕的一个正常字符。示例:

‘B’ ‘B’ 会输入中间断开的 ‘|’ 字符 (166)

‘a’ ‘>’ 会输入带 circumflex 重音的 ‘a’ (226)

CTRL-K ‘-’ ‘-’ 会输入软的破折号 (173)

“:digraphs” 列出当前的二合字母。一些缺省的二合字母列在下面的 |digraph-table|

里。

对 CTRL-K 而言,有一个通用的二合字母: CTRL-K {char} 会输入 {char},并

设置最高位。你可以用这个方法来输入带 meta 的字符。

二合字母里不能有 字符。按 的时候,Vim 停止二合字母的输入并回到插入

或命令行模式,这也可以理解为 退出了二合字母的上下文。用 CTRL-V 155 输入

meta-ESC (CSI)。

如果你本来想输入 ‘e’ 但不小心输入了 ‘a’,你也许会键入 ‘a’ ‘e’。但是这个序

列成了二合字母。这也许不是你想要的。要纠正这个错误,你需要再按一次 e。要

避免这一点,不要置位 ‘digraph’ 选项,只用 CTRL-K 输入二合字母。

Vim 里使用值高于 128 的字符可能会有问题。例如: 你输入 ue (u-umlaut) 而编辑器在

插入模式回显 \334。离开插入模式一切就正常了。注意 fmt 删除待排版的文本里所有值

高于 128 的字符。有的 Unix 系统上,解决方法是定义 LC_CTYPE。如果你使用 csh,把

这行放入 .cshrc:

setenv LC_CTYPE iso_8859_1

3. 缺省的二合字母

digraphs-default


Vim 缺省提供了一些二合字母。”:digraphs” 的输出列出这些二合字母。

Vim 在大多数系统中使用相同二合字母。它们适用于 Unicode 和 ISO-8859-1 字符集。

缺省的二合字母是 RFC1345 提供的助记符。为了方便记住这些助记符,第二个字符有一

个标准的含义:

字符名 字符 含义

Exclamation mark ! Grave (钝音符号)

Apostrophe ’ Acute (锐音符号)

Greater-Than sign > Circumflex (折音/抑扬符号)

Question Mark ? Tilde (腭化/鼻音化符号)

Hyphen-Minus – Macron (长音符号)

Left parenthesis ( Breve (短音符号)

Full Stop . 上带点 (Dot)

Colon : Diaeresis (分音符号)

Comma , Cedilla (软音符号)

Underline _ 带下划线 (Underline)

Solidus / 带短划线 (Stroke)

Quotation mark ” Double acute (双锐音符号)

Semicolon ; Ogonek (鼻音化符号)

Less-Than sign < Caron (楔形/倒折音符号)

Zero 0 上带圆圈 (Ring)

Two 2 上带钩 (Hook)

Nine 9 带角 (Horn)

Equals = 西里尔字母 (Cyrillic)

Asterisk * 希腊语

Percent sign % 特殊的希腊/西里尔字母

Plus + 小写: 阿拉伯语,大写: 希伯来语

Three 3 一些拉丁/希腊/西里尔字母

Four 4 注音符号

Five 5 平假名

Six 6 片假名

示例: a: 是 ? 而 o: 是 ?

下面列出 RFC1345 定义的单字节二合字母。其他的二合字母见 “:digraphs”。高于 255

的字符只有在 Vim 编译的时候加上 |+multi_byte| 特性才能使用。

EURO

特例: RFC1345 没有指定欧元 (euro) 符号。Vim 里为此目的加入了二合字母 =e。注意

以下区别: latin1 里,二合字母 Cu 用于货币符号,而 latin9 (iso-8859-15) 里二合

字母 =e 用于欧元符号,尽管两者都代表字符 164,0xa4。为了和 zsh 兼容,Eu 也用于

欧元符号。


digraph-table


字符 二合字母 十六进 十进制 正式名字

^@ NU 0x00 0 NULL (NUL)

^A SH 0x01 1 START OF HEADING (SOH)

^B SX 0x02 2 START OF TEXT (STX)

^C EX 0x03 3 END OF TEXT (ETX)

^D ET 0x04 4 END OF TRANSMISSION (EOT)

^E EQ 0x05 5 ENQUIRY (ENQ)

^F AK 0x06 6 ACKNOWLEDGE (ACK)

^G BL 0x07 7 BELL (BEL)

^H BS 0x08 8 BACKSPACE (BS)//先键击Ctrl键不要放手,然后依次键击字母V和字符H,完成输入

^I HT 0x09 9 CHARACTER TABULATION (HT)

^@ LF 0x0a 10 LINE FEED (LF)

^K VT 0x0b 11 LINE TABULATION (VT)

^L FF 0x0c 12 FORM FEED (FF)

^M CR 0x0d 13 CARRIAGE RETURN (CR)

^N SO 0x0e 14 SHIFT OUT (SO)

^O SI 0x0f 15 SHIFT IN (SI)

^P DL 0x10 16 DATALINK ESCAPE (DLE)

^Q D1 0x11 17 DEVICE CONTROL ONE (DC1)

^R D2 0x12 18 DEVICE CONTROL TWO (DC2)

^S D3 0x13 19 DEVICE CONTROL THREE (DC3)

^T D4 0x14 20 DEVICE CONTROL FOUR (DC4)

^U NK 0x15 21 NEGATIVE ACKNOWLEDGE (NAK)

^V SY 0x16 22 SYNCHRONOUS IDLE (SYN)

^W EB 0x17 23 END OF TRANSMISSION BLOCK (ETB)

^X CN 0x18 24 CANCEL (CAN)

^Y EM 0x19 25 END OF MEDIUM (EM)

^Z SB 0x1a 26 SUBSTITUTE (SUB)



1


GS 0x1d 29 GROUP SEPARATOR (IS3)

^^ RS 0x1e 30 RECORD SEPARATOR (IS2)

^_ US 0x1f 31 UNIT SEPARATOR (IS1)

SP 0x20 32 SPACE



Nb 0x23 35 NUMBER SIGN

$ DO 0x24 36 DOLLAR SIGN

@ At 0x40 64 COMMERCIAL AT

[ <( 0x5b 91 LEFT SQUARE BRACKET

\ // 0x5c 92 REVERSE SOLIDUS

] )> 0x5d 93 RIGHT SQUARE BRACKET

^ ‘> 0x5e 94 CIRCUMFLEX ACCENT

` ‘! 0x60 96 GRAVE ACCENT

{ (! 0x7b 123 LEFT CURLY BRACKET

| !! 0x7c 124 VERTICAL LINE

} !) 0x7d 125 RIGHT CURLY BRACKET

~ ‘? 0x7e 126 TILDE

^? DT 0x7f 127 DELETE (DEL)

~@ PA 0x80 128 PADDING CHARACTER (PAD)

~A HO 0x81 129 HIGH OCTET PRESET (HOP)

~B BH 0x82 130 BREAK PERMITTED HERE (BPH)

~C NH 0x83 131 NO BREAK HERE (NBH)

~D IN 0x84 132 INDEX (IND)

~E NL 0x85 133 NEXT LINE (NEL)

~F SA 0x86 134 START OF SELECTED AREA (SSA)

~G ES 0x87 135 END OF SELECTED AREA (ESA)

~H HS 0x88 136 CHARACTER TABULATION SET (HTS)

~I HJ 0x89 137 CHARACTER TABULATION WITH JUSTIFICATION (HTJ)

~J VS 0x8a 138 LINE TABULATION SET (VTS)

~K PD 0x8b 139 PARTIAL LINE FORWARD (PLD)

~L PU 0x8c 140 PARTIAL LINE BACKWARD (PLU)

~M RI 0x8d 141 REVERSE LINE FEED (RI)

~N S2 0x8e 142 SINGLE-SHIFT TWO (SS2)

~O S3 0x8f 143 SINGLE-SHIFT THREE (SS3)

~P DC 0x90 144 DEVICE CONTROL STRING (DCS)

~Q P1 0x91 145 PRIVATE USE ONE (PU1)

~R P2 0x92 146 PRIVATE USE TWO (PU2)

~S TS 0x93 147 SET TRANSMIT STATE (STS)

~T CC 0x94 148 CANCEL CHARACTER (CCH)

~U MW 0x95 149 MESSAGE WAITING (MW)

~V SG 0x96 150 START OF GUARDED AREA (SPA)

~W EG 0x97 151 END OF GUARDED AREA (EPA)

~X SS 0x98 152 START OF STRING (SOS)

~Y GC 0x99 153 SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)

~Z SC 0x9a 154 SINGLE CHARACTER INTRODUCER (SCI)

~[ CI 0x9b 155 CONTROL SEQUENCE INTRODUCER (CSI)

~\ ST 0x9c 156 STRING TERMINATOR (ST)

~] OC 0x9d 157 OPERATING SYSTEM COMMAND (OSC)

~^ PM 0x9e 158 PRIVACY MESSAGE (PM)

~_ AC 0x9f 159 APPLICATION PROGRAM COMMAND (APC)

| NS 0xa0 160 NO-BREAK SPACE

? !I 0xa1 161 INVERTED EXCLAMATION MARK

¢ Ct 0xa2 162 CENT SIGN

£ Pd 0xa3 163 POUND SIGN

¤ Cu 0xa4 164 CURRENCY SIGN

¥ Ye 0xa5 165 YEN SIGN

| BB 0xa6 166 BROKEN BAR

§ SE 0xa7 167 SECTION SIGN

¨ ‘: 0xa8 168 DIAERESIS

? Co 0xa9 169 COPYRIGHT SIGN

a -a 0xaa 170 FEMININE ORDINAL INDICATOR

? << 0xab 171 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK

? NO 0xac 172 NOT SIGN

– 0xad 173 SOFT HYPHEN

? Rg 0xae 174 REGISTERED SIGN

ˉ ‘m 0xaf 175 MACRON

° DG 0xb0 176 DEGREE SIGN

± ± 0xb1 177 PLUS-MINUS SIGN

2 2S 0xb2 178 SUPERSCRIPT TWO

3 3S 0xb3 179 SUPERSCRIPT THREE

′ ‘’ 0xb4 180 ACUTE ACCENT

μ My 0xb5 181 MICRO SIGN

? PI 0xb6 182 PILCROW SIGN

· .M 0xb7 183 MIDDLE DOT

? ‘, 0xb8 184 CEDILLA

1 1S 0xb9 185 SUPERSCRIPT ONE

o -o 0xba 186 MASCULINE ORDINAL INDICATOR

? >> 0xbb 187 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK

? 14 0xbc 188 VULGAR FRACTION ONE QUARTER

? 12 0xbd 189 VULGAR FRACTION ONE HALF

? 34 0xbe 190 VULGAR FRACTION THREE QUARTERS

? ?I 0xbf 191 INVERTED QUESTION MARK

à A! 0xc0 192 LATIN CAPITAL LETTER A WITH GRAVE

á A’ 0xc1 193 LATIN CAPITAL LETTER A WITH ACUTE

? A> 0xc2 194 LATIN CAPITAL LETTER A WITH CIRCUMFLEX

? A? 0xc3 195 LATIN CAPITAL LETTER A WITH TILDE

? A: 0xc4 196 LATIN CAPITAL LETTER A WITH DIAERESIS

? AA 0xc5 197 LATIN CAPITAL LETTER A WITH RING ABOVE

? AE 0xc6 198 LATIN CAPITAL LETTER AE

? C, 0xc7 199 LATIN CAPITAL LETTER C WITH CEDILLA

è E! 0xc8 200 LATIN CAPITAL LETTER E WITH GRAVE

é E’ 0xc9 201 LATIN CAPITAL LETTER E WITH ACUTE

ê E> 0xca 202 LATIN CAPITAL LETTER E WITH CIRCUMFLEX

? E: 0xcb 203 LATIN CAPITAL LETTER E WITH DIAERESIS

ì I! 0xcc 204 LATIN CAPITAL LETTER I WITH GRAVE

í I’ 0xcd 205 LATIN CAPITAL LETTER I WITH ACUTE

? I> 0xce 206 LATIN CAPITAL LETTER I WITH CIRCUMFLEX

? I: 0xcf 207 LATIN CAPITAL LETTER I WITH DIAERESIS

D D- 0xd0 208 LATIN CAPITAL LETTER ETH (Icelandic)

? N? 0xd1 209 LATIN CAPITAL LETTER N WITH TILDE

ò O! 0xd2 210 LATIN CAPITAL LETTER O WITH GRAVE

ó O’ 0xd3 211 LATIN CAPITAL LETTER O WITH ACUTE

? O> 0xd4 212 LATIN CAPITAL LETTER O WITH CIRCUMFLEX

? O? 0xd5 213 LATIN CAPITAL LETTER O WITH TILDE

? O: 0xd6 214 LATIN CAPITAL LETTER O WITH DIAERESIS

× *X 0xd7 215 MULTIPLICATION SIGN

? O/ 0xd8 216 LATIN CAPITAL LETTER O WITH STROKE

ù U! 0xd9 217 LATIN CAPITAL LETTER U WITH GRAVE

ú U’ 0xda 218 LATIN CAPITAL LETTER U WITH ACUTE

? U> 0xdb 219 LATIN CAPITAL LETTER U WITH CIRCUMFLEX

ü U: 0xdc 220 LATIN CAPITAL LETTER U WITH DIAERESIS

Y Y’ 0xdd 221 LATIN CAPITAL LETTER Y WITH ACUTE

T TH 0xde 222 LATIN CAPITAL LETTER THORN (Icelandic)

? ss 0xdf 223 LATIN SMALL LETTER SHARP S (German)

à a! 0xe0 224 LATIN SMALL LETTER A WITH GRAVE

á a’ 0xe1 225 LATIN SMALL LETTER A WITH ACUTE

a a> 0xe2 226 LATIN SMALL LETTER A WITH CIRCUMFLEX

? a? 0xe3 227 LATIN SMALL LETTER A WITH TILDE

? a: 0xe4 228 LATIN SMALL LETTER A WITH DIAERESIS

? aa 0xe5 229 LATIN SMALL LETTER A WITH RING ABOVE

? ae 0xe6 230 LATIN SMALL LETTER AE

? c, 0xe7 231 LATIN SMALL LETTER C WITH CEDILLA

è e! 0xe8 232 LATIN SMALL LETTER E WITH GRAVE

é e’ 0xe9 233 LATIN SMALL LETTER E WITH ACUTE

ê e> 0xea 234 LATIN SMALL LETTER E WITH CIRCUMFLEX

? e: 0xeb 235 LATIN SMALL LETTER E WITH DIAERESIS

ì i! 0xec 236 LATIN SMALL LETTER I WITH GRAVE

í i’ 0xed 237 LATIN SMALL LETTER I WITH ACUTE

? i> 0xee 238 LATIN SMALL LETTER I WITH CIRCUMFLEX

? i: 0xef 239 LATIN SMALL LETTER I WITH DIAERESIS

e d- 0xf0 240 LATIN SMALL LETTER ETH (Icelandic)

? n? 0xf1 241 LATIN SMALL LETTER N WITH TILDE

ò o! 0xf2 242 LATIN SMALL LETTER O WITH GRAVE

ó o’ 0xf3 243 LATIN SMALL LETTER O WITH ACUTE

? o> 0xf4 244 LATIN SMALL LETTER O WITH CIRCUMFLEX

? o? 0xf5 245 LATIN SMALL LETTER O WITH TILDE

? o: 0xf6 246 LATIN SMALL LETTER O WITH DIAERESIS

÷ -: 0xf7 247 DIVISION SIGN

? o/ 0xf8 248 LATIN SMALL LETTER O WITH STROKE

ù u! 0xf9 249 LATIN SMALL LETTER U WITH GRAVE

ú u’ 0xfa 250 LATIN SMALL LETTER U WITH ACUTE

? u> 0xfb 251 LATIN SMALL LETTER U WITH CIRCUMFLEX

ü u: 0xfc 252 LATIN SMALL LETTER U WITH DIAERESIS

y y’ 0xfd 253 LATIN SMALL LETTER Y WITH ACUTE

t th 0xfe 254 LATIN SMALL LETTER THORN (Icelandic)

? y: 0xff 255 LATIN SMALL LETTER Y WITH DIAERESIS

vim:tw=78:ts=8:ft=help:norl:

Generated by vim2html on Mon Oct 6 16:25:06 UTC 2008


  1. EC 0x1b 27 ESCAPE (ESC)

    ^\ FS 0x1c 28 FILE SEPARATOR (IS4)

    ^

    ↩︎



版权声明:本文为MRQ1734原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。