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.