단어를 일치시키려면 다음을 사용할 수 있습니다.
\v(\w+)
vim 도움말에서 :h \w
:
\w 단어 문자: [0-9A-Za-z_]
이는 매뉴얼에 설명된 것과 정확히 같습니다. 하지만 다음과 같이 문자 이외의 문자를 포함하는 단어를 일치시키고 싶습니다 a-z
.
석고 정원. 정규식 표현식과 \v(\w+)
일치
석고 정원대신 세 개의 일치 항목이 생성됩니다.
prästgården
^^ ^^^ ^^^^
문자 이상을 포함하는 단어를 일치시키는 방법은 무엇입니까 a-z
? 내 로케일은 영어로 설정되어 있으며 가능하면 그렇게 유지하고 싶습니다.
편집하다:이러한 단어는 단일 로케일에 속하지 않을 수 있습니다.
prästgården
treść
답변1
Vim(버전 7.3 기준)은 모드에서 ASCII가 아닌 문자를 매우 제한적으로 지원합니다. 특히 \w
ASCII 문자만 일치하므로 사용이 제한됩니다.
유니코드를 지원하는 일부 문자 클래스 모드가 있습니다. 당신은 관심이 있습니다\I
, 일반적으로 문자와 일치하며 문자, 플러스 _
및 @
. 적어도 Debian squeeze(UTF-8 로케일)에는 버그가 있으며 문자로 일치 ×
하지만 ÷
모든 라틴 악센트 문자는 올바르게 인식되는 것 같습니다. \I
다음을 통해 구성할 수 있습니다.isident
적어도 ASCII 부분에 대해서는 옵션입니다.
엄격한 유니코드 지원을 원한다면 외부 도구에 의존해야 합니다. 예를 들어 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에서 테스트되었습니다.