Vim의 J 명령과 같지만 동작을 수행하십시오.


6

J여러 줄을 연결 하는 명령이 마음에 들지만 연결하려는 줄 수를 세고 싶지는 않습니다. 모션을 선호합니다. 이것은 가짜 일 수 있습니다 V{motion}J; 비주얼 모드로 들어 가지 않는 방법이 *있습니까 (따라서 레지스터를 방해합니다 )?


더 나은 : vi.stackexchange.com
Tim

이것은 귀하의 질문에 대답하지 않지만 잘못된 줄 바꿈으로 너무 많은 줄 바꿈을 삽입하면 J를 사용합니다. Shift 키를 누른 상태에서 J 워칭이 향상됨에 따라 반복해서 탭합니다. 많은 라인 조인이 있다면 J를 보유한다고 가정합니다.
barlop

당신은 계산하고 싶지 않지만 당신이해야한다고 생각합니다. 당신은 제스처를 원하지만, 제스처는 얼마나 많은 J를해야한다고 제안합니까?
barlop

@barlop "제스쳐가 몇 개의 J를 계산해야한다고 제안합니까?" 표준 vim 방식 : 모션을 제공합니다. 예를 들어 d}단락 d32G을 삭제 하거나 32 행까지 삭제할 수 있습니다. 그리고 J}단락 J32G에 합류 하거나 32 행 등에 합류하고 싶습니다 .
Daniel Wagner

실제로 그것이 여기에 속하지 않았다고 말한 것이 아니고 더 나은 대답을 얻을 수 있다고 제안했습니다.
LawrenceC

답변:


4

기본 조인 연산자가 없다고 생각합니다. 그러나 같은 주제의 오래된 vim 스레드 에서이 코드를 사용할 수 있습니다 .

nnoremap J :set operatorfunc=Joinoperator<CR>g@
nnoremap gJ :set operatorfunc=GJoinoperator<CR>g@
onoremap J j
func! Joinoperator(submode)
        '[,']join
endfunc
func! GJoinoperator(submode)
        '[,']join!
endfunc 

그것을 할 수 없습니다이 코드를 사용하여 사용하는 것을 알 J는 사용할 필요가있을 것이다 - 라인의 한 쌍의 가입 Jj(또는 JJ인해로 omap J j).


완벽한 'operatorfunc'은 내가 알아야 할 것입니다.
Daniel Wagner

3

당신은 다음과 같은 것을 할 수 있습니다 :

:.,/pattern/join

본질적으로 Vim에게 .커서가있는 현재 줄이되고 마지막 줄이의 첫 번째 일치하는 줄 범위에 합류하도록 지시 pattern합니다.


2
종료 위치를 표시 :.,'bj하고 범위를 결합하는 데 사용할 수도 있습니다 . 'a또는 vim이 필요합니다. 범위 교체에 대해 묻거나 시작 및 종료를 표시하고 ;'a,'bj사용합니다. 상대 범위 :.,+20j등 사용
Steve
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.