검색 및 바꾸기를 수행하고 싶습니다. 숫자가 아닌 문자 앞의 줄 바꿈은 탭으로 바꿔야 합니다. 나는 노력했다
%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