다음과 같은 매우 간단한 파일이 있다고 가정 해 봅시다.
a
b
c
d
e
각 줄 뒤에 빈 줄을 추가하기로 결정했습니다. 몇 가지 다른 방법이 즉시 내 마음으로 뛰어 넘습니다. 우리는 단지 그렇게 할 수 있습니다 (따라서 실패를 받아들입니다). 매크로를 기록하고 qqo<ESC>jq
여러 번 반복 할 수 있습니다.
당시 다른 두 가지 방법이 더 분명해 보였습니다.
먼저 각 줄마다 :norm
명령 o
을 내릴 것이라고 생각했습니다 . 그래서 나는 달린다 :%norm o
. 그러나 실제로 발생하는 것은 5 개의 빈 줄과 그 뒤에 분리되지 않은 줄이 오는 것입니다. 나는 이것을 %norm
vim이 실제로이 다섯 줄 파일의 처음 다섯 줄에서 다음과 같은 명령을 내리는 메시지를 선택 한다는 것을 의미하는 것으로 해석한다 . 이 o
명령은 새로운 줄을 만들고 vim은 실제로 다른 식별자가 아니라 줄 번호로 참조한다는 의미에서 "dumb"입니다.
글쎄, 나는 당황했다. 확실한. 위의 방법을 작동시킬 수 있는지 확인하기 위해 몇 가지 다른 것을 시도했지만 슬프게도 할 수 없었습니다. 호기심으로, 나는 다른 가장 좋아하는 대량 적용 방법을 시도했습니다. 이것은 나를 시도하게했다 :g/^/norm o
. 놀랍게도, 이것은 잘 작동합니다! 그래서 내 눈에 vim은 위와 같은 방식으로 "멍청한"것이 아니며 단순한 행 번호 이상의 행을 참조합니다.
정확히 무슨 일이야?
:%s/$/\r/
또는 다음과 같이 할 수도 있습니다:%s/\n/\r\r/
. 테이크 아웃은 개행을와 일치시킬 수\n
있지만\r
대체 값 으로 작성해야 합니다.