当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : VIM输入特殊符号
帖子发表于 : 2007-11-20 13:30 

注册: 2007-09-06 16:24
帖子: 193
地址: 中国上海
送出感谢: 0 次
接收感谢: 0 次
今天偶然发现在VIM中可以直接输入特殊符号,在插入模式下按Ctrl+k再加两个字符就可以输入想要的符号了,比如:

引用:
<Ctrl+k>1* = ☆
<Ctrl+k>2* = ★
<Ctrl+k>z% = ж
<Ctrl+k>1c = ㈠
<Ctrl+k>2c = ㈡
<Ctrl+k>3c = ㈢

……

具体符号输入方法用:dig就知道了。

附:VIM参考手册 | 二合字母
*digraph.txt* For Vim version 7.0. 最近更新: 2006年5月


VIM 参考手册 by Bram Moolenaar
译者: Willis
http://vimcdoc.sf.net


二合字母 *digraphs* *Digraphs*

二合字母用来输入不能用普通键盘输入的字符。它们通常是带重音的字符,最高位 (从右
到左第 8 位) 为 1。二合字母比用 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'。这需要该转换确实能实现,有
时并非如此。

如果 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} <BS> {char2}
第一个方法总是可以用的;第二个方法只有在 'digraph' 选项置位的时候才可用。


如果二合字母 {char1}{char2} 不存在,Vim 会搜索二合字母 {char2}{char1}。这样,
即使你不记得何者在前,也能输入。

注意 如果输入 CTRL-K {char1} 时,{char1} 是特殊键,Vim 只会输入该键的编码。这
就不是输入二合字母了。

一旦你输入了二合字母,Vim 把该字符当成占据文件和屏幕的一个正常字符。示例: >
'B' <BS> 'B' 会输入中间断开的 '|' 字符 (166)
'a' <BS> '>' 会输入带 circumflex 重音的 'a' (226)
CTRL-K '-' '-' 会输入软的破折号 (173)

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

引用:
对 CTRL-K 而言,有一个通用的二合字母: CTRL-K <Space> {char} 会输入 {char},并
设置最高位。你可以用这个方法来输入带 meta 的字符。

二合字母里不能有 <Esc> 字符。按 <Esc> 的时候,Vim 停止二合字母的输入并回到插入
或命令行模式,这也可以理解为 <Esc> 退出了二合字母的上下文。用 CTRL-V 155 输入
meta-ESC (CSI)。

如果你本来想输入 'e' 但不小心输入了 'a',你也许会键入 'a' <BS> 'e'。但是这个序
列成了二合字母。这也许不是你想要的。要纠正这个错误,你需要再按一次 <BS> e。要
避免这一点,不要置位 'digraph' 选项,只用 CTRL-K 输入二合字母。

Vim 里使用高于 ASCII 值 128 的字符可能会有问题。例如: 你输入 ue (u-umlaut) 而
编辑器在插入模式回显 334。离开插入模式一切就正常了。注意 fmt 删除待排版的文
本里所有 ASCII 高于 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)
^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)
^[ EC 0x1b 27 ESCAPE (ESC)
^ FS 0x1c 28 FILE SEPARATOR (IS4)
^] 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:


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-11-20 13:40 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
这么复杂。不要。


_________________
● 鸣学


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译