“dap”은 모든 것을 삭제합니까?


15

"dd"및 "d {motion}"명령에 익숙하지만 vim의 help.txt에서 "dap"을 찾을 수 없습니다. "dap"은 일반 모드에서 어떤 역할을합니까? 그 이유는 무엇입니까? (또는, 어떻게 이런 종류의 것을 스스로 찾을 수 있습니까?)

답변:


29

"dap"은 실제로 모든 것을 삭제하지는 않습니다. 예를 들어 이것을 버퍼에 넣으십시오.

1
1

2
2

3
3

그런 다음 커서를 '2'에 놓고 "dap"을 입력하십시오. '1'과 '3'을 그대로 둡니다.

"dap"은 단락을 삭제하기 때문 입니다. 사실, 그것은 실제로는 니모닉입니다 : "(D) elete (A) (P) aragraph". 아래 도움말에서 볼 수 있습니다 :h ap.

                            *v_ap* *ap*
ap          "a paragraph", select [count] paragraphs (see
            |paragraph|).
            Exception: a blank line (only containing white space)
            is also a paragraph boundary.
            When used in Visual mode it is made linewise.

이것을 "텍스트 객체"라고합니다. 에 대한 내용을 읽을 수 있습니다 : :h text-objects또는 텍스트 객체에 대한이 멋진 기사를 읽을 수 있습니다 .

어느 쪽이든, 텍스트 개체의 기본 개념은 당신이의 경계를 정의하는 것입니다 오브젝트를 하고 당신이 그것의 중간에있을 경우에도 그 전체 개체에 명령을 적용합니다. 예를 들어, dw단어를 삭제하는 데 사용할 수 있다는 것을 알고 있습니다 . 그러나이 시나리오에 있다면 어떨까요?

Hello world
Cursor: ^

을 입력 dw해도 여전히 wo왼쪽이됩니다. 을 입력 하면 단어 내부diw 가 삭제 되므로 대부분을 입력하는 것과 같습니다 .bdw

이런 종류의 물건을 어떻게 알 수 있습니까?

당신은 기본 아이디어를 가지고 있었다! 도움말 확인은 항상 좋은 시작입니다. 이 경우 d연산자 임을 알 수 있었으므로 실제로 찾고자하는 도움은 연산자에 대한 논거였습니다 (이 경우) ap.


+1! pedantic하기 위해 : diw는 후행 공간을 떠나지 만 bdw는 그렇지 않습니다. diw는 bde와 동일합니다. ;-) bdw의 펜던트는 실제로 daw이며 질문의 획과 동일한 "a"를 사용합니다.
M.Herzkamp

1
M.Herzkamp @ : 그리고 아직 diw하고 bde여전히 같은 꽤 있습니다 : 커서가 단어의 시작에 있는지. 마찬가지로 커서가 단어 사이의 공백에 있으면 bdw왼쪽 daw의 단어는 삭제되고 오른쪽의 단어는 삭제됩니다. 나는 원래 답변의 "대부분…"이 아마도 우리가 이러한 동등성 측면에서 얻을 수있는 최선이라고 생각합니다.
wchargin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.