"다음 X 문자까지"를 삭제하는 vi 바로 가기


194

vi에는 다양한 옵션으로 문자, 단어 및 줄을 삭제하는 바로 가기 키가 있음을 이해합니다.

그러나 나는 이것을 찾을 수 없었다 :

  • 커서에서 다음 지정된 문자로 삭제

예를 들어, du"편집기가 "다음 "문자를 찾을 때까지 삭제"를 기대할 수 있습니다.

내가 아는 가장 가까운 d9w곳 9은 삭제할 단어의 수입니다.

이것이 가능한지 아는 사람이 있습니까?


Vi와 Vim에 관심이 있으시다면, 지금 그들 만의 SE 사이트를 가지고 있습니다 : Vi and Vim
— 디저트

답변:


303

사용 dtc, C는 임의의 문자가 당신을 위해, 예를 들어, 당신이 원하는dt"

c 까지는 포함 하지 않지만 삭제됩니다 .

당신이 가지고 있다면 :

delete until exclamation point!

그리고 커서는 첫 번째 공간에 있었고 입력 dt!하면 다음 과 같이 나타납니다 .

delete!

또한 dfc.

이것은 개까지 삭제 하고 포함하여 C를 .

df!위의 동일한 예제를 사용 하면 다음을 얻을 수 있습니다.

delete

그냥 어떤 "운동"에 대해 사용할 수 있습니다 d, c, y및 이와 유사한 명령.


7
아마도 니모닉은 "till"에 대한 t일까요? 좋은 대답입니다.
— 17:01에

15
이동 명령의 대문자 버전을 사용하여 문자의 이전 인스턴스를 삭제할 수도 있습니다. 어쩌면 더 쉼표 유용 - dT,와 dF,.
— joelostblom

3
여러 줄에서는 작동하지 않습니다.
— 0xcaff

3
이 작업을 다양한 라인에서 수행 할 수 있습니까?
— Ray

2
다양한 라인에서 비슷한 작업을 수행하기 위해 zpletan의 답변과 같이 일반적인 검색을 수행 할 수 있습니다 : d/word최대 검색 word. 그 뒤에 Enter를 눌러야합니다 (검색을 닫으려면).
— Eric O Lebigot

59
  • 문자 'X'유형까지 앞으로 삭제하려면 dtX

  • 문자 'X'유형을 통해 앞으로 삭제하려면 dfX

  • 문자 'X'유형까지 거꾸로 삭제하려면 dTX

  • 문자 'X'유형을 통해 뒤로 삭제하려면 dFX


30

입력 dt # (: 명령이 아니라 G와 같은 움직임처럼 사용하십시오)

#을 포함하지 않을 때까지 커서에서 삭제됩니다. #을 임의의 문자로 대체 할 수 있습니다.


2
이것이 정답입니다! df #도 #을 삭제합니다.
— Viet

이 찾고,이 굉장합니다
— 나딤 케 드르

18

@Arcege가 이미 질문에 대답 한 것처럼 보이지만 d/l문자까지 삭제했습니다 l. 다른 캐릭터도 잘 작동합니다.


3
이것은 개행에 걸쳐 물건을 위해 작동합니다.
— jasonszhao

참고 :이 뒤에 Enter가 와야합니다.
— Eric O Lebigot

6

w다음 단어로 이동합니다. l다음 문자로 이동합니다.

그래서 그건 d9l다음 9 개 문자를 삭제합니다.


2
닫기 l는 Vim의 오른쪽 화살표 키이므로 실제로 삭제하고 있습니다. 반대로 d9h9 개의 문자가 남아 있습니다.
— Walf
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.