Apakah "dap" menghapus semuanya?


15

Saya kenal dengan perintah "dd" dan "d {motion}", tetapi tidak dapat menemukan "dap" di help.txt vim. Apa yang dilakukan "dap" dalam mode normal dan mengapa? (Atau, bagaimana saya bisa mengetahui hal semacam ini untuk diri saya sendiri?)

Jawaban:


29

"dap" sebenarnya tidak menghapus semuanya. Misalnya, coba masukkan ini ke buffer Anda:

1
1

2
2

3
3

Lalu letakkan kursor Anda di '2' dan ketik "dap". Ini akan meninggalkan angka 1 dan 3.

Ini karena "dap" menghapus paragraf . Bahkan, itu sebenarnya mnemonik: "(D) elete (A) (P) aragraph". Anda dapat melihatnya di bantuan di bawah :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.

Ini disebut "objek teks". Anda dapat membaca tentang ini di bawah:, :h text-objectsatau Anda dapat membaca artikel yang luar biasa ini pada objek teks.

Either way, ide dasar objek teks adalah bahwa Anda mendefinisikan batas-batas objek dan kemudian menerapkan perintah ke seluruh objek bahkan ketika Anda berada di tengah-tengahnya. Misalnya, saya yakin Anda tahu Anda dapat menggunakan dwuntuk menghapus kata. Tetapi bagaimana jika Anda berada dalam skenario ini?

Hello world
Cursor: ^

Jika Anda mengetik dw, Anda masih akan memiliki wokiri. Jika Anda mengetik diw, itu akan menghapus bagian dalam kata , jadi sebagian besar sama dengan mengetik bdw.

Bagaimana saya bisa mengetahui hal semacam ini untuk diri saya sendiri?

Anda memiliki ide dasar! Memeriksa bantuan selalu merupakan awal yang baik. Dalam hal ini, Anda dapat menyadari bahwa itu dadalah operator, jadi bantuan yang benar-benar Anda cari adalah argumen untuk operator, dalam hal ini ap.


+1! Menjadi bertele-tele: diw meninggalkan ruang tambahan, sementara bdw tidak. diw akan sama dengan bde ;-) Liontin untuk bdw sebenarnya daw, yang menggunakan "a" yang sama dengan stroke dalam pertanyaan.
M.Herzkamp

1
@ M.Herzkamp: Namun diwdan bdemasih belum sama: jika kursor Anda ada di awal kata. Demikian juga, jika kursor Anda berada di spasi di antara kata-kata, maka bdwakan menghapus kata di sebelah kiri, sementara dawakan menghapus kata di sebelah kanan. Saya pikir jawaban asli "sebagian besar ..." mungkin yang terbaik yang akan kita dapatkan dalam hal persamaan ini.
wchargin
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.