Vimはウムラウトを単語文字として受け入れません


9

abücdたとえばdw、前にaのようなものを含むドイツ語のテキストを書くと、単語の文字としてab解釈さüれないため、が削除されるだけです。

reStructuredTextを編集すると、

iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_

これがウムラウトがマークされていない理由を説明していますが、これがどこから来たのかわかりません。gVimを開くと、これは

iskeyword=@,48-57,_,192-255

これはどこから来るのでしょうか?


3
あなたのset encoding=utf-8中に入れてください.vimrc
cuonglm 2015年

それはすでに私の中に.vim/vimrcあり、私に:set enc?与えますutf-8。と同じfencです。それでも動作しません。
Martin Ueding、2015年

:set iskeyword&üまだ単語の一部として認識されていませんか?
ryuichiro 2015年

iskeyword(set iskeyword)として表示します。"@,48-57,_,128-167,224-235"またはのようなものでなければなりません"@,48-57,_,192-255"。VimまたはViを使用していますか?(Vi("@,48-57,_")のデフォルト値はüを認識しません
。Vim

1
私はgVimを使用していiskeyword=@,48-57,_,192-255ます。これは新しいVimインスタンスで魔法のように動作します。それは奇妙です、私はそれをもっと注意深く観察しなければなりません。
Martin Ueding、2015年

回答:


5

@文字にiskeywordは、isalpha()(C関数)がTRUE であるすべての文字が含まれます。最近(過去20年間)のlibc実装では、これもUnicode文字を探します。

2つ目iskeyword97-122(az)と64-90(AZ)を使用しますが、さまざまな分音記号(ウムラウト/分音記号/トレマなど)を持つすべてのバリアントは含まれていません。

だから、解決策を交換することです97-12264-90して@

このファンキーなものiskeywordは、LISP構文ファイルからのものです。rst構文ファイルには、コードブロックを強調表示するための他の構文ファイルの束を含んでいます。

幸い、g:rst_syntax_code_list変数に含める言語を設定できます。デフォルトは次のとおりです。

let g:rst_syntax_code_list = ['vim', 'java', 'cpp', 'lisp', 'php', 'python', 'perl']

reStructuredTextファイルでLISP構文の強調表示が必要になることはほとんどないため、おそらく単に削除するだけで済みます。vimrcファイルの任意の場所に追加するだけで、定義されている場合、構文ファイルは独自の値を定義する代わりにその値を使用します。

私の意見では、あなたはおそらく使用したいでしょう:

let g:rst_syntax_code_list = []

他の構文ファイルが引き起こすファンキーな副作用を誰が知っているからです...


よろしくお願いします!これは今のところUbuntuでは発生していません。Fedora22でのみ発生しました。おそらく構文ファイルが少し異なります。現在は機能しています。
Martin Ueding、2015年

@英数字の文字の立っているヒントは本当に役に立ちました。
Zelphir Kaltstahl、2016年

1

マークダウンファイルなどの他の言語の文法をインライン化すると、それらの言語の設定がマークダウン構文の設定を上書きするように見えます。これが当てはまるかどうかは、次を使用して確認できます。

:verbose set iskeyword?

これを修正するために、マークダウンファイル(およびおそらく他の言語も)を入力するたびに実行されるautoコマンドを定義できます。

autocmd BufEnter,BufNewFile *.md set iskeyword=38,42,43,45,47-58,60-62,_,@

これを私の中に入れて.vimrc、問題を修正しました。私が使っていたvim-pandoc構文をし、インライン化言語は含めてracketpythonshおよびいくつか。私が正しく理解していれば、他の言語のファイルを入力するときに、構文ファイルでキーワードを設定する必要があるため、マークダウンファイルを残すための自動コマンドを定義する必要はないと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.