簡體   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