単語を一致させるには、次を使用できます。
\v(\w+)
vimヘルプから:h \w
:
\w 単語文字: [0-9A-Za-z_]
これはマニュアルに記載されているものとまったく同じです。しかし、次のように文字以外の文字を含む単語を一致させたいと思いますa-z
。
石膏ガーデン。正規表現式と\v(\w+)
一致
石膏ガーデン代わりに、3 つの一致が生成されます。
prästgården
^^ ^^^ ^^^^
文字以上の単語を一致させる方法はa-z
?私のロケールは英語に設定されており、可能であればそうしたいと思います。
編集する:これらの単語は単一のロケールに属さない場合があります。
prästgården
treść
答え1
Vim(バージョン7.3ベース)は、モードで非ASCII文字を非常に制限的にサポートしています。特に\w
ASCII文字のみが一致するため、使用が制限されます。
Unicodeをサポートするいくつかの文字クラスモードがあります。あなたは興味があります\I
、一般的に文字と一致し、文字、プラス_
と@
。少なくともDebian squeeze(UTF-8ロケール)にはバグがあり、文字で一致します×
が、÷
すべてのラテンアクセント文字は正しく認識されているようです。\I
次のように設定できます。isident
少なくともASCII部分についてはオプションです。
厳密なUnicodeサポートが必要な場合は、外部ツールに頼る必要があります。たとえば、perl -C -e '/\p{L}/'
UTF-8文字と一致します(UTF-8ロケールを想定)。
答え2
使用\k
。バラよりiskeyword
オプション。
答え3
キリル文字でも動作します。
\v\k
少し複雑でキリル文字が失敗する
\v(\c[0-9a-z_[=a=][=c=][=e=][=i=][=l=][=n=][=o=][=r=][=s=][=t=][=u=][=y=][=z=]])
医者。
Vim 7.4でテストされました。