繁体   English   中英

带有重音字符的Vim缩写不能完全替换文本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM