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


194

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

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

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

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

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

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


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.