[unix] Vim에서 줄 바꿈 삭제

Vim의 줄 끝에서 줄 바꿈을 삭제하여 다음 줄이 현재 줄에 추가되도록하는 방법이 있습니까?

예를 들면 다음과 같습니다.

Evaluator<T>():
    _bestPos(){
}

줄을 복사하여 이전 줄에 붙여 넣지 않고이 모든 것을 한 줄에 넣고 싶습니다. 커서를 각 줄의 끝 부분에 놓고 키를 누르고 다음 줄이 커서가있는 것과 같은 줄로 이동할 수 있어야합니다.

최종 결과 :

Evaluator<T>(): _bestPos(){ }

Vim에서 가능합니까?



답변

첫 번째 줄에있는 경우 (대문자)를 누르면 J해당 줄과 다음 줄이 합쳐져 줄 바꿈이 제거됩니다. 이것을 카운트와 결합 할 수도 있으므로를 누르면 3J3 개의 라인이 모두 결합됩니다.


답변

확실히. Vim은 \ n 문자를 줄 바꿈으로 인식하므로 검색하고 바꿀 수 있습니다. 명령 모드에서 다음을 입력하십시오.

:%s/\n/


답변

정상 모드에서 상단 라인에있는 동안 Shift+를 누르십시오 j.

개수를 앞에 추가 할 수도 있으므로 3J맨 위 줄에서 해당 줄을 모두 합칩니다.


답변

다른 답변에서 언급했듯이 (대문자) J및 검색 + 바꾸기는 \n일반적으로 줄 바꿈 문자를 제거하고 줄을 연결하는 데 사용할 수 있습니다.

그러나 마지막 줄에서 후행 줄 바꿈 문자 제거하려면 Vim 에서이 작업을 수행해야합니다.

:set noendofline binary
:w


답변

J여분의 선행 간격 (있는 경우)을 삭제하고 단일 공백으로 라인을 결합합니다. (일부 예외 : after 뒤에 /[.!?]$/공백이 삽입 될 수 있습니다 /^\s*)/.

해당 동작을 원하지 않으면 gJ개행을 제거하고 공백으로 영리한 작업을 수행하지 마십시오.


답변

다음은 모두 커서가 첫 번째 줄에 있다고 가정합니다.

노멀 매핑 사용 :

3Shift+J

Ex 명령 사용 :

:,+2j

의 약어입니다

:.,.+2 join

다음 바로 가기로 입력 할 수도 있습니다.

3:j

더 짧은 Ex 명령 :

:j3


답변

set backspace=indent,eol,start

당신의 .vimrc에 사용할 수 backspacedelete\n삽입 모드 (줄 바꿈).

set whichwrap+=<,>,h,l,[,]

X(1 열에있을 때) 일반 모드에서 이전 LF를 삭제할 수 있습니다 .