[英]Vim abbreviations with accented characters not completely replacing text
当我使用西班牙语口音或字符时,我的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
。
我认为这是一个简单的编码问题。 (底部的解决方案。)
似乎在执行时: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
在缩写之前。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.