6.9. 技巧 17——用字符代码插入不常见的字符
6.9 技巧 17——用字符代码插入不常见的字符
Vim 可以用数字代码插入任意字符。要输入那些在键盘上找不到的符号,这是很方便的。
如果知道数字代码,可以让 Vim 插入任意字符。在插入模式,必须键入 <C-v>{code},这里 {code} 就是要插入字符的地址。
Vim 期待插入的数字代码包含三个数位,比如想插入一个大写的 A 字符,这个字符代码是65,所以应该通过 <C-v>065 输入。
但是如果想插入一个数字代码大于3位的字符应该怎么办呢?比如 unicode 基本多语言平面有一个直至65535个字符的地址空间。它证明了只要输入 <C-v>u{1234}(注意这次 u 在数字的前面),就可以键入所有使用四个数位的十六进制代码的字符。比如想插入一个反转的问号(“¿”),它是用字符代码 00bf
表示的。在插入模式,输入 <C-v>u00bf。(见 :h i_CTRL-V_digit ⓘ 来获取更多细节)。
如果想找出在文档中的任意字符的数字代码,只需要把光标放在上面,然后触发 ga 命令。这样就会在屏幕的底部输出一条以十进制和十六进制的标记来显示这个字符代码的信息(见 :h ga ⓘ) 当然如果想知道一个不在文档中的字符的代码,这是没有用的。在那种情况下,可能要查 unicode 表。
在另一个场景,如果 <C-v> 命令后面跟着任意非数字的键,会将按这个键按原样插入。比如如果 'expandtab' 选项被启用,那么按 <Tab> 键将插入的是空格字符,而不是一个 tab 字符。然而按住 <C-v><Tab> 将总是按原样插入 tab 字符,而不管 'expandtab' 是不是被启用。
35页上的表3 插入不寻常的字符,总结了输入不常见的字符的几种命令。
表3插入不常见的字符。
键击 | 效果 |
---|---|
<C-v>{123} | 按十进制代码插入 { 字符 |
<C-v>u{1234} | 按十六进制代码插入 ሴ 字符 |
<C-v>{非数字} | 按非数字原样插入 |
<C-k>{char1}{char2} | 插入由{char1}{char2}代表的二合字符(见 :h digraphs ⓘ) |