IT TIP

Vim에서 파일의 모든 줄을 한 줄로 결합하는 가장 간단한 방법은 무엇입니까?

itqueen 2020. 12. 31. 23:13
반응형

Vim에서 파일의 모든 줄을 한 줄로 결합하는 가장 간단한 방법은 무엇입니까?


파일의 모든 줄을 한 줄로 결합하고 싶습니다. 이 작업을 수행하는 가장 간단한 방법은 무엇입니까? 나는 대체품을 사용하려고 시도했지만 운이 좋지 않았습니다 ( \r\n또는 Windows \n의 경우 올바르게 선택되지 않는 것 같습니다 s/\r\n//). J범위 표현식에서 사용 하는 것도 작동하지 않는 것 같습니다 (아마 첫 번째 명령이 실행 된 후 범위가 더 이상 '동기화'상태가 아니기 때문일 것입니다).

나는 시도 :1,$norm! J했지만 이것은 파일의 절반 만했습니다. 각 줄을 한 번만 연결하기 때문에 의미가 있습니다.


또 다른 방법:

ggVGJ

" ggVG"은 모든 줄을 시각적으로 선택하고 " J"은 (는) 이들을 결합합니다.


아, 답을 찾았습니다.

:1,$join

매력처럼 작동합니다.

편집 : 주석에서 지적했듯이 :

:%join   -or-    :%j

... 범위를 제거합니다.


일반 모드에서 시작하여 세 번의 키 입력으로 수행 할 수 있습니다.

:%j
  • : 명령 모드로 들어갑니다
  • % 파일의 모든 행을 참조
  • j join 명령을 실행합니다.

이제 이것은 선 사이에 공백을 추가하는 것 같습니다. 이걸 원하는지 잘 모르겠습니다.


세 번 더 적은 키 입력으로 수행 할 수 있습니다.

:1,$j

에드 그랜드 아니야?


비밀스러운 방법 :

qqqqqJ@qq@q

(처음 세 개 qq레지스터를 지우고, 조인을 수행하는 레지스터에 qqJ@qq매크로를 q기록한 다음를 호출 q하고 마지막으로 @q실행합니다.


아무도 다른 방식으로 언급하지 않은 것에 놀랐습니다.

:%s/\n/ /

나는 아무도 범위 1,$가 쓰여진 속기를 가지고 있다고 지적하지 않았다는 것에 똑같이 놀랐습니다 %.

(이것은 줄을 연결하는 것과 같은 일을하지 않지만 실제로 더 적절할 수있는 상황에 따라 다릅니다.)

참조 URL : https://stackoverflow.com/questions/391710/in-vim-what-is-the-simplest-way-to-join-all-lines-in-a-file-into-a-single-line

반응형