VIM : 현재 위치에서 공백까지 삭제


172

개발 할 때 종종 다음과 같이 줄 중간에있는 코드에서 삭제하려는 중첩 된 객체에 직면합니다.

htmlDoc.WriteLine("<b><h3>" + this.cbAllSyncs.SelectedItem.ToString() + "</h3></b>");

삭제하려는 부분은 다음과 같습니다.

this.cbAllSyncs.SelectedItem.ToString()

단어와 마침표 수를 세고 7dw현재 커서 위치 "this"에서 삭제하기 위해 입력 할 수 있음을 알고 있습니다 . 그러나 내가하고 싶은 것은 전혀 하나의 명령으로 계산하고 공간을 삭제할 필요가 없다는 것입니다. 이게 가능해?

답변:


343

시도하십시오 dtspace. 일반적으로 dtx직전까지 현재 위치에서 삭제 x합니다. 현재 줄에서 tx커서를 문자 바로 앞으로 이동하십시오 x.

공백을 포함하여 공백을 삭제하려면을 사용하십시오 dfspace.


2
이것은 잘 작동합니다! 또한 해당 객체 내의 다른 특정 지점에 도달 할 수있는 유연성이 추가되었습니다. 감사!
Blake Blackwell

27
df<space>다음 공간까지 포함하여 삭제합니다.
glenn jackman

5
dfT <space>는 이전 공간까지 삭제합니다.
hgmnz

3
또한 t문자 바로 앞에 개수를 추가 하여 해당 문자를 삭제할 수 있습니다. 예를 들어 d2t<space>최대 2 개의 공백이 삭제됩니다.
Waseem

7
난 항상 연상 기호를 사용 t으로 까지 ' stackoverflow.com/questions/7409134/...
ACW

71

공간 자체를 삭제하지 않으려면 dW또는 @glenn이 제안한 dE대로 사용할 수 있습니다 .

WORD (대문자 W)가 공백으로 구분 비 공백 문자의 시퀀스로 구성된다.

모션이라는 단어를 살펴보십시오 .


1
내가 두 가지 답변에 투표 할 수 있다면 내가 원하는 특정 질문을 해결하기 때문에 내가 할 것이다. 링크 주셔서 감사합니다!
Blake Blackwell

5
또는 dE- (다음 공백을 포함하지 않음) 공백이 아닌 문자의 순서가 끝날 때까지 삭제
글렌 잭맨

@BlakeBlackwell 누가 두 개의 답변에 투표 할 수 없다고합니까? 나는 이미이 질문에 그렇게했다. 이것은 v 유용한 정보입니다.
javadba

20

가능한 해결책 중 하나는 검색과 함께 삭제를 사용하는 것입니다.

입력 d/<space>하고 vim은 공백에 닿을 때까지 삭제합니다.


2
이것은 dW커서를 사용하여 커서 2d/+에서이 경우 와 같은 문자로 삭제할 수 있기 때문에 보다 일반적 입니다.이 경우 문자열 연결도 삭제됩니다.
Dave Jarvis

1
2dW를 수행 할 수 있으며이 작업도 마찬가지로 수행됩니다. 실제로 탭 및 기타 공백과 함께 작동하기 때문에 더 나은 솔루션이라고 생각합니다. 또한 삭제할 후행 공백을 제거합니다.
barkmadley

15

WORD 안의 아무 곳 이나 하나의 명령 으로 삭제하려면 다음을 사용하십시오. daW

( daw단어로 제한하고 싶다면 물론 사용할 수 있습니다)

단어의 시작 부분으로 이동하지 않기 때문에 나는 그것을 많이 사용합니다 (귀하의 경우)


daw와 daW는 나에게도 똑같이 동작합니다. 커서가 어떤 문자에 있든 단어 전체를 삭제합니다. 이유가 확실하지 않습니다.

daw는 단어 뒤에 공백을 삭제하지 않지만 daW는
Louis

4
  • 현재 위치를 특정 문자 예로 삭제 "

    dt "
  • 단어가 끝날 때까지 위치 커서에서 단어를 삭제하십시오.

    dw
  • 커서가 단어에있는 위치에 관계없이 커서가있는 전체 단어를 삭제하면 삽입 모드로 전환되어 즉시 삽입 할 수 있습니다.

    졸다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.