当我使用西班牙语重音或字符时,我的Vim缩写不起作用。我有.vimrc
以下内容:
iab maniana mañana
iab habia había
但是当我在输入“habia”之后点击 Space 时,我只能得到“habí”。
我的iskeywords
设置为:
set iskeyword=@,48-57,_,192-255,:,#
编辑:命令:verbose iab habia
返回i habia hab<ed>a
,命令:verbose iab maniana
返回i maniana ma<f1>ana
。
答案 0 :(得分:3)
我认为这是一个简单的编码问题。 (底部的解决方案。)
似乎执行:iab maniana mañana
时,ñ
以拉丁语1编码进行解释,其中大小为一个字节且值为0x00f1
:
ñ (Latin 1): 11110001
但是当使用缩写时,您已经以某种方式切换到UTF-8编码。
Vim只是插入你在右侧存储的字节:11110001
。但是在UTF-8 ñ
中有一个不同的表示 - 事实上,11110001
是一个无效的UTF-8字节(显示为<f1>
),这就是扩展停止的原因。为了说明这一点,这些是ñ
:
ñ (UTF-8): 11000011 10110001
^^ ^^^^^^
顺便说一下,ñ有Unicode 代码点 0x00f1
,你实际上可以看到它在上面显示的两个字节中编码。
好的,你问,但这是什么意思?!
这意味着您应该检查您的vimrc并确保:set encoding=utf-8
位于缩写之前。