带有重音字符的Vim缩写不能完全替代文本
当我使用西班牙语口音或字符时,我的Vim缩写不起作用。我的带有重音字符的Vim缩写不能完全替代文本,vim,non-ascii-characters,Vim,Non Ascii Characters,当我使用西班牙语口音或字符时,我的Vim缩写不起作用。我的.vimrc中包含以下内容: iab maniana mañana iab habia había 但当我在输入“habia”后点击空格时,我只得到“habí” Myiskeywords设置为: set iskeyword=@,48-57,_,192-255,:,# 编辑:命令:verbose-iab-habia返回i-habia-haba,命令:verbose-iab-maniana返回i-maniana-maana 我认为这是一个
.vimrc
中包含以下内容:
iab maniana mañana
iab habia había
但当我在输入“habia”后点击空格时,我只得到“habí”
Myiskeywords
设置为:
set iskeyword=@,48-57,_,192-255,:,#
编辑:命令
:verbose-iab-habia
返回i-habia-haba
,命令:verbose-iab-maniana
返回i-maniana-maana
我认为这是一个简单的编码问题。(溶液位于底部。)
似乎在执行:iab maniana mañana
时,ñ
被解释为拉丁1编码,其中大小为一个字节,值为0x00f1
:
ñ (Latin 1): 11110001
然而,当您使用缩写时,不知何故您已经切换到UTF-8编码
Vim只插入存储在右侧的字节:11110001
。但在UTF-8中,ñ
有不同的表示形式–事实上,11110001
是无效的UTF-8字节(显示为
),这就是扩展停止的原因。为了说明这一点,以下是ñ
的UTF-8字节:
ñ (UTF-8): 11000011 10110001
^^ ^^^^^^
顺便说一句,ñ具有Unicode代码点0x00f1
,您实际上可以看到它在上面显示的两个字节中编码
好吧,你问,那是什么意思
这意味着你应该检查你的vimrc,确保缩写前面有
:set encoding=utf-8
。什么是:set encoding的输出?
输出是:utf-8在你的终端中,执行vim--version | grep-Eo。multi\w+“
输出是什么?@Kent我正在Windows下使用Gvim,那么我该如何执行呢?@petobens然后在你的vim中,键入:version
看看你是否有+多字节+多语言
阅读你的答案后,我扫描了我的vimrc
文件,找到了脚本编码utf-8
之前的那一行。我不知道为什么会有它(可能是我第一次安装Vim时,由于某种原因,vimrc
文件没有显示重音字符,我一定添加了这一行)。把它评论出来似乎可以解决问题。