2013-03-10 71 views
1

當我使用西班牙語口音或字符時,我的Vim縮寫不起作用。我在我的.vimrc如下:帶有重音字符的Vim縮寫不能完全替代文本

iab maniana mañana 
iab habia había 

但是,當我打空間打字實例後「哈博,」我只得到「哈比」。

iskeywords設置爲:

set [email protected],48-57,_,192-255,:,# 

編輯:命令:verbose iab habia返回i habia hab<ed>a和命令:verbose iab maniana返回i maniana ma<f1>ana

+0

':設置編碼的輸出是什麼?' – Birei 2013-03-10 22:25:56

+0

輸出結果是:utf-8 – petobens 2013-03-10 22:36:28

+0

在你的終端裏,執行'vim --version | grep -Eo「.multi_ \ w +」'輸出是什麼? – Kent 2013-03-10 23:24:40

回答

3

我認爲這是一個簡單的編碼問題。 (解決方案在底部。)

看來,當執行: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 
         ^^ ^^^^^^ 

順便說一句,ñ有統一碼點0x00f1,實際上,你可以看到它在上面所示的兩個字節編碼。

好的,你問,但這是什麼意思?

這意味着你應該檢查你的vimrc並確保:set encoding=utf-8出現在縮寫之前。

+1

在閱讀你的答案後,我掃描了我的'vimrc'文件,發現這行'scriptencoding utf-8'就在'set encoding = utf8'之前。我不知道爲什麼我在那裏(可能是我第一次安裝Vim出於某種原因,'vimrc'文件沒有顯示重音字符,我必須添加該行)。評論它似乎解決了這個問題。 – petobens 2013-06-12 23:16:23