1

スペイン語のアクセントや文字を使用すると、Vimの略語が機能しません。私.vimrcは次のようにしています:

iab maniana mañana
iab habia había

しかし、Spaceたとえば「habia」と入力してヒットすると、「habí」しか表示されません。

iskeywordsは次のように設定されています:

set iskeyword=@,48-57,_,192-255,:,#

編集:コマンド:verbose iab habiaが戻りi habia hab<ed>a、コマンド:verbose iab manianaが戻りますi maniana ma<f1>ana

4

1 に答える 1

3

これは単純なエンコードの問題だと思います。(解決策は一番下にあります。)

:iab maniana mañanaが実行されるとñ、Latin 1 エンコーディングで解釈され、サイズが 1 バイトで値が0x00f1:

ñ (Latin 1):    11110001

ただし、省略形を使用すると、どういうわけか UTF-8 エンコーディングに切り替えられます。

Vim は、格納したバイトを右側に挿入するだけです: 11110001. しかし、UTF-8ñでは表現が異なります。実際に11110001は、無効な UTF-8 バイト ( として表示<f1>) であるため、展開が停止します。ポイントを説明するために、これらは の UTF-8 バイトですñ

ñ (UTF-8):      11000011 10110001
                      ^^   ^^^^^^

ちなみに、ñには Unicode codepoint 0x00f1があり、実際には上記の 2 バイトにエンコードされていることがわかります。

わかりました、あなたは尋ねますが、それはどういう意味ですか?!

:set encoding=utf-8これは、vimrc をチェックして、省略形の前に来ていることを確認する必要があることを意味します。

于 2013-06-12T20:30:43.970 に答える