단어를 일치시키기 위해 사용할 수 있습니다
\v(\w+)
vim 도움말에서 :h \w
:
\ w 단어 문자 : [0-9A-Za-z_]
이것은 설명서에 설명 된대로 정확하게 작동합니다. 그러나, 나는 넘어 문자가 포함 된 단어와 일치 할 a-z
, 예를 들어
prästgården을 . prästgården\v(\w+)
에 대해 정규 표현식 을
일치 시키면 세 개의 일치 항목이 생성됩니다.
prästgården
^^ ^^^ ^^^^
넘어 문자를 포함하는 단어를 일치시키는 방법 a-z
? 내 로케일은 영어로 설정되어 있으며 가능하면 그대로 유지하고 싶습니다.
편집 : 단어가 단일 로케일에 속하지 않을 수 있습니다 (예 :
prästgården
treść
답변
Vim (버전 7.3 현재)은 패턴에서 비 ASCII 문자 지원과 관련하여 매우 제한적입니다. 특히 \w
ASCII 문자 만 일치하며 유용성이 제한됩니다.
유니 코드를 지원하는 몇 가지 문자 클래스 패턴이 있습니다. 당신이 관심의에 \I
, 어떤 문자와 문자, 플러스 전반적으로 일치 _
하고 @
. 적어도 데비안 스퀴즈 (UTF-8 로켈에서)에는 오류가 있습니다. 예를 들어 ×
과는 ÷
문자로 일치하지만, 모든 라틴 문자가 제대로 recognied 것 같다 악센트. 적어도 ASCII 부분에 대해서는 옵션을 \I
통해 구성 할 수 있습니다 isident
.
심각한 유니 코드 지원을 원하면 외부 도구를 사용해야합니다. 예를 들어 perl -C -e '/\p{L}/'
UTF-8 문자를 일치 시키려면 (UTF-8 로케일 가정)