vim 명령줄에서 perl 정규식을 사용할 수 있나요?

vim 명령줄에서 perl 정규식을 사용할 수 있나요?

vim 명령줄에서 perl 정규식을 사용하고 싶습니다. 예를 들어, 현재 줄의 단어를 대문자로 표시하려면 다음을 입력할 수 있습니다.

:s/(\w+)/\u$1/g

답변1

!를 사용하여 vim의 외부 명령을 통해 모든 행 또는 행 범위를 필터링할 수 있습니다. 예를 들어 다음과 같이 할 수 있습니다.

:.!perl -pe "s/(\w+)/\u\1/g"

해당 perl 명령을 통해 현재 행을 필터링합니다. (여기서 :명령줄 모드로 들어가려면 .다음의 내용이 현재 줄을 의미합니다. 줄 범위나 %전체 파일 등을 지정할 수도 있습니다.)

vim에 내장된 대체 패턴을 사용하려는 경우 가장 가까운 방법은 다음과 같이 vim의 "매우 마법" 옵션인 \v를 사용하는 것입니다.

:s/\v(\w+)/\u\1/g

자세한 내용은 :help pattern및 를 참조하세요 . :help substitute나는 "매우 마법"이 Perl의 패턴과 완전히 동일하다고 생각하지 않지만 매우 유사합니다. 어쨌든, 위와 같이 Perl에 더 익숙하다면 언제든지 Perl 자체를 사용할 수 있습니다.

답변2

다음을 사용할 수도 있습니다.

/\v"your regex"

대신에:

/"your regex"

답변3

아니요, 그런 식으로 Perl 정규식을 사용할 수 없습니다. Perl 정규식 구성요소에 해당하는 Vim 항목을 학습하는 데 도움이 필요하면 다음을 참조하세요.

:help perl-patterns

그러나 frabjous의 설명에 따라 Perl을 외부 필터로 사용할 수 있습니다. Vim이 해당 기능으로 컴파일된 경우 Perl 인터페이스를 사용하여 Vim 내에서 Perl 명령을 실행할 수도 있습니다 +perl. 보다

:help if_perl.txt

답변4

사용eregex.vim플러그인. 매우 유용하며 아무런 문제가 없었습니다.

관련 정보