Vim에서 다른 두 문자 사이에 문자 삽입

Vim에서 다른 두 문자 사이에 문자 삽입

정규식을 사용하여 vim에서 패턴을 검색한 다음 정규식이 일치하는 항목을 변경하지 않고 무언가를 삽입하려면 어떻게 해야 합니까? 예를 들어, 파일에서

foo123
bar4567

12zw231xy

숫자가 아닌 각 문자와 숫자 사이에 개행 문자를 삽입하여 다음과 같은 파일을 만들고 싶습니다.

foo
123
bar
4567

12zw
231xy

답변1

:%s/\(\D\)\(\d\)/\1\r\2/g
  • \(\)캡처 그룹입니다. 여기에 캡처된 콘텐츠는 \1및 에 의해 복제됩니다 \2.

  • \D숫자가 아니고 \d숫자입니다.

  • \rVim에서 개행 문자가 됩니다.

이는 다음과 같이 단순화될 수 있습니다.매직 모드정규 표현식 활성화됨 \v:

:%s/\v(\D)(\d)/\1\r\2/g

관련 정보