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