2013-03-10 1 views
1

스페인어 악센트 또는 문자를 사용할 때 Vim 약어가 작동하지 않습니다. 나는 다음 내 .vimrc에 있습니다. "HABI을"악센트 부호가있는 문자가있는 Vim 약어가 텍스트를 완전히 대체하지 않음

iab maniana mañana 
iab habia había 

을하지만, 예를 들어 입력 한 후 공간을 쳤을 때 "하비,"난 단지 얻을

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

편집 :

은 내 iskeywords는 다음과 같이 설정 명령을 :verbose iab habia 반환 i habia hab<ed>a하고 명령 :verbose iab maniana 반환 i maniana ma<f1>ana합니다.

+0

출력 :'set encoding? ' – Birei

+0

출력은 다음과 같습니다 : utf-8 – petobens

+0

터미널에'vim --version | grep -Eo ".multi_ \ w +"'출력은 무엇입니까? – Kent

답변

3

이것은 간단한 인코딩 문제라고 생각합니다. (하단에 솔루션.)

:iab maniana mañana이 실행될 때 크기가 1 바이트이며, 값 0x00f1이 경우, ñ는 라틴어 1 인코딩으로 해석됩니다 것으로 보인다

:

ñ (Latin 1): 11110001 

을 때 약어를 사용하십시오. 그러나 어떻게 든 UTF-8 인코딩으로 전환했습니다.

빔은 오른쪽에 저장된 바이트 : 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' 바로 앞에 추가합니다. 내가 왜 그것을 가지고 있었는지 모르겠다. (아마도 vimrc 파일이 악센트 부호가없는 문자를 표시하지 않았고 그 행을 추가 했어야했기 때문에 아마도 Vim을 처음 설치했을 것이다.) 그것을 주석 처리하는 것은 문제를 해결하는 것으로 보인다. – petobens

관련 문제