vim 명령 줄에서 perl 정규식을 사용하고 싶습니다. 예를 들어, 현재 줄의 단어를 대문자로 입력하려면 다음을 입력하십시오.
:s/(\w+)/\u$1/g
vim 명령 줄에서 perl 정규식을 사용하고 싶습니다. 예를 들어, 현재 줄의 단어를 대문자로 입력하려면 다음을 입력하십시오.
:s/(\w+)/\u$1/g
답변:
!를 사용하여 vim의 외부 명령을 통해 모든 라인 또는 라인 범위를 필터링 할 수 있습니다. 예를 들어 다음을 수행 할 수 있습니다.
:.!perl -pe "s/(\w+)/\u\1/g"
이것은 perl 명령을 통해 현재 행을 필터링합니다. ( :
명령 행 모드로 들어가기 위해 .
다음 행은 현재 행을 의미합니다. 행 범위 또는 %
전체 파일 등을 지정할 수도 있습니다 .)
vim의 내장 대체 패턴을 사용하려면 vim의 "매우 마술"옵션 인 \ v를 사용하십시오.
:s/\v(\w+)/\u\1/g
참조 :help pattern
및 :help substitute
자세한 내용은. 나는 "매직 매직"이 펄의 패턴과 상당히 동일하다고 생각하지는 않지만 매우 가깝습니다. 어쨌든, 위와 같이 더 편안하다면 펄 자체를 항상 사용할 수 있습니다.
(
동안 특별히 처리 {
되지 않습니다 : " '0'을 제외한 모든 ASCII 문자 - '9', 'A'- 'Z', 'A'- 'Z'와 '_'에는 특별한 의미가 있습니다. " 감사!
아니요, 그런 식으로 Perl 정규식을 사용할 수 없습니다. Perl 정규 표현식 구성 요소에 대한 Vim 등가 학습에 대한 도움말은
:help perl-patterns
그러나 frabjous에서 설명한대로 Perl을 외부 필터로 사용할 수 있습니다. Vim이 +perl
기능 으로 컴파일 된 경우 Perl 인터페이스를 사용하여 Vim 내에서 Perl 명령을 실행할 수도 있습니다. 만나다
:help if_perl.txt
:help perl-patterns
내가 이전에 정력에 대해 싫어 한 가지를 해결했다
다음을 사용할 수도 있습니다.
/\v"your regex"
대신에:
/"your regex"
nnoremap / /\v
및 vnoremap / /\v
입력 할 때 있도록의 .vimrc에 /
그냥 작동합니다.
다음은 http://vim.wikia.com/wiki/Perl_compatible_regular_expressions 의 솔루션입니다.
:perldo s/(\w+)/\u$1/g
( :ver
그것을 확인 +perl
하거나 +perl/dyn
컴파일 하십시오 .)
eregex.vim 플러그인을 사용하십시오 . 매우 유용하며 문제가 없습니다.