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플러그인. 매우 유용하며 아무런 문제가 없었습니다.