Vim 검색 및 바꾸기 - 정규식

Vim 검색 및 바꾸기 - 정규식

검색 및 바꾸기를 수행하고 싶습니다. 숫자가 아닌 문자 앞에 있는 개행 문자는 탭 문자로 대체되어야 합니다. 나는 노력했다

%s/\n\D/\t/g

그러나 그것은 내가 원하는 것이 아닌 개행 문자 뒤의 단어의 첫 번째 문자를 대체합니다.

abcd
abcd

도착하다

abcd   bcd

a개행 문자 뒤에 계속 유지하고 싶습니다 .

답변1

거의 다 왔지만 정규 표현식이 개행 문자를 대체하고 있습니다.그리고탭 문자가 포함된 숫자가 아닙니다.

숫자가 아닌 모든 개행 문자를 탭 문자로 바꾸는 방법그리고 같은 숫자가 아닌?

%s/\n\(\D\)/\t\1/g

\D이스케이프는 약간 혼란스럽지만 기본적으로 숫자가 아닌 모든 것을 잡을 수 있는 그룹이 있습니다 . 그런 다음 \1탭 뒤에 인용하고 삽입하세요.

답변2

한 가지 방법은 닫는 일치 태그를 사용하는 것입니다.

%s/\n\ze\D/\t/

또 다른 방법은 부정적인 예측을 사용하는 것입니다.

%s/\n\d\@!/\t/

그것들은 정확히 동일하지 않으며, 두 번째 것도 파일의 마지막 개행 문자를 대체합니다.

답변3

이것이 당신에게 도움이 되기를 바랍니다

:%s#\n.\D#\t#g

관련 정보