1

当我使用西班牙口音或字符时,我的 Vim 缩写不起作用。我有.vimrc以下内容:

iab maniana mañana
iab habia había

但是当我Space在输入例如“habia”后点击时,我只会得到“habí”。

iskeywords的设置为:

set iskeyword=@,48-57,_,192-255,:,#

编辑:命令:verbose iab habia返回i habia hab<ed>a,命令:verbose iab maniana返回i maniana ma<f1>ana

4

1 回答 1

3

我认为这是一个简单的编码问题。(底部的解决方案。)

似乎 when:iab maniana mañana被执行,ñ以拉丁 1 编码解释,其中它的大小为一个字节并且具有值0x00f1

ñ (Latin 1):    11110001

但是,当您使用缩写时,您不知何故切换到了 UTF-8 编码。

Vim 只是将您存储在右侧的字节插入:11110001. 但在 UTF-8ñ中有不同的表示形式——事实上,11110001是一个无效的 UTF-8 字节(显示为<f1>),这就是扩展停止的原因。只是为了说明这一点,这些是 UTF-8 字节ñ

ñ (UTF-8):      11000011 10110001
                      ^^   ^^^^^^

顺便说一句,ñ具有 Unicode代码点 0x00f1,您实际上可以看到它以上面显示的两个字节编码。

好吧,你问,但这意味着什么?!

这意味着你应该检查你的 vimrc 并确保:set encoding=utf-8在缩写之前。

于 2013-06-12T20:30:43.970 回答