VIM输入特殊字符

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。要
避免这

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值