Cara termudah untuk menghapus kata "gabungan"?

20

Permintaan maaf jika "komposit" bukan istilah teknis. Maksud saya yang berikut ini:

Hi, I-am-a-composite-word and we are not

Saya hanya ingin menghapus kata gabungan. Dalam mode perintah, jika saya memindahkan kursor ke I, lalu mengulangi dwbeberapa kali, atau lebih baik mengetik dwsekali, diikuti dengan beberapa .penekanan, akan melakukan trik. Namun, karena berbagai alasan saya mendapati diri saya melakukan ini cukup sering di siang hari, jadi saya bertanya-tanya apakah ada cara yang lebih sederhana.

PS Saya TIDAK akan menganggap perintah d9wsebagai cara yang lebih sederhana. Menghitung urutan kata dan garis yang panjang bukanlah ide saya tentang "sederhana".

DeltaIV
sumber

Jawaban:

33

Apa yang Anda sebut kata gabungan sebenarnya adalah KATA (dengan menentang sebuah kata). Membaca :h worddan :h WORDharus membantu:

                            *word*
A word consists of a sequence of letters, digits and underscores, or a
sequence of other non-blank characters, separated with white space (spaces,
tabs, <EOL>).  This can be changed with the 'iskeyword' option.  An empty line
is also considered to be a word.
                            *WORD*
A WORD consists of a sequence of non-blank characters, separated with white
space.  An empty line is also considered to be a WORD.

Apa yang Anda cari di sini adalah dWketika Anda berada di Iatau diWketika Anda berada di mana saja dalam kata.

Mungkin di masa depan Anda juga perlu membaca :h 'iskeyword'.

statox
sumber
1
terima kasih atas jawabannya: berhasil. Berhubung dari definisi: A WORD consists of a sequence of non-blank characters, separated with white space. Separated with white spaceberarti bahwa KATA dipisahkan oleh kata-kata lain atau KATA dengan ruang putih, kan?
DeltaIV
2
@DeltaIV Yup in-this-sentence there are four"WORDs4 kata-kata in-this-sentence, there, aredan four"WORDs. Sangat mudah untuk melihat kapan Anda menggunakan wdan Wdan bdan Bgerakan misalnya. Perhatikan bahwa spasi putih bisa berupa ruang "reguler" atau karakter tab.
statox
1
Jawaban ini akan lebih berguna segera jika dimulai dengan "Apa yang Anda cari di sini adalah dW .." daripada memaksa pembaca untuk membaca paragraf tengah untuk menemukan solusinya.
Mark Meuer
9

Solusi lain yang lebih umum adalah dengan menghapus hingga menggunakan spasi karakter whitespace dt (dengan spasi setelah t), yang berarti "delete to [karakter]. Ini sering berguna untuk hal-hal seperti dt:dan mirip juga.

allo
sumber
apa yang dt: harus dilakukan
DeltaIV
1
Ketika saya memposting jawaban yang sama, saya belajar bahwa Anda dapat menggunakan <code>dt </code>untuk memasukkan spasi di bagian akhir.
BurnsBA
2
@DeltaIV Sebenarnya yang benar-benar Anda butuhkan adalah membaca :h motion.txtdan menggunakan vimtutor, yang akan sangat membantu Anda untuk mendapatkan dasar-dasar Vim
statox
@statox Saya dulu ahli di VIM ... 10 tahun yang lalu :-) vimtutorterdengar sangat menarik. Saya tidak yakin itu diinstal pada server jauh (sepertinya bahkan manutilitas tidak diinstal). Namun, saya akan memeriksa: jika itu secara otomatis diinstal bersama dengan vimpaket, maka kemungkinan besar saya akan dapat menggunakannya.
DeltaIV
1
@ BurnsBA Terima kasih, itu sangat berguna untuk situs ini. Btw. Anda dapat mengedit posting dari orang lain dan bahkan mendapatkan +2 reputasi jika hasil edit Anda membuatnya melalui beberapa proses peer review. Tapi dengan cara ini, saya belajar sesuatu yang baru juga :-).
allo
4

Jika Anda ingin tetap menggunakan dwdan sejenisnya, dan juga ingin membuatnya berfungsi dengan mengklik dua kali sebuah kata, Anda dapat menambahkan

set iskeyword+=-

ke Anda .vimrc, yang ditambahkan -sebagai karakter kata.

Contoh:

Mengklik dua kali setiap karakter dalam ab-cdsorotan visual ab-cd.

nst0022
sumber
Saya baik-baik saja dengan beralih ke dW, tetapi solusi Anda juga cukup keren karena itu mempengaruhi mode visual juga, saya kira. Maksud saya, dengan memodifikasi iskeyword, mengklik dua kali dan kemudian menekan dsaya harus dapat menghapus ab-cd. Kanan?
DeltaIV
Atau mungkin saya harus beralih ke mode visual v, daripada mengklik dua kali. Kanan?
DeltaIV
1
@DeltaIV dengan memodifikasi iskeyword, Anda dapat menggunakan metode apa pun dengan objek kata (termasuk iw atau aw, jauh lebih sederhana daripada menggunakan mouse atau mode visual)
D. Ben Knoble
4

Jangan lupa perintah f(temukan) dan t(untuk). Saya mungkin hanya dt atau df (perhatikan ruang di akhir).

BurnsBA
sumber