노트북에서 Vim을 열고 정규식을 실행하면 다음과 같습니다:
:%s/foo/\n/g
vim은 줄 바꿈 대신 ^@를 삽입합니다.
이 문제는 지난주부터 발생하기 시작했습니다. 우분투 18.04.04를 실행 중입니다. Ubuntu가 업데이트를 설치한 후에 문제가 시작된 것 같습니다.
내가 시도한 것들
인코딩 및 파일 인코딩
인코딩과 파일 인코딩을 utf-8로 설정한 다음 latin1로 설정해 보았지만 아무런 차이가 없었습니다.
:lang
:lang은 "현재 언어"를 생성합니다: LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=es_ES.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=es_ES.UTF-8;LC_MESSAGES=en_US.UTF- 8;LC_PAPER=es_ES.UTF-8;LC_NAME=es_ES.UTF-8;LC_ADDRESS=es_ES.UTF-8;LC_ TELEPHONE=es_ES.UTF-8;LC_MEASUREMENT=es_ES.UTF-8;LC_IDENTIFICATION=es_ES.UTF-8 "
다음 명령으로 vim을 호출하면
LC_ALL=C vim foo
글쎄요, 아무런 차이가 없으며 문제는 여전히 발생합니다.
답변1
vim에서 \n은 대체 문자가 개행 문자가 아니라 null임을 의미합니다.
대신 \r을 사용하세요. 예를 들어
:%s/foo/\r/g