`Cw` ve` ce` neden aynı şeyi yapar?


15

Bu beni wve Whareket komutları hakkında her zaman rahatsız etti - change komutuyla birlikte kullanıldığında, tek başına veya elete komutuyla olduğundan farklı çalışıyor gibi görünüyorlar d.


Örneğin, imleç bu metnin "q" üzerindeyken:

The quick brown fox jumps over the lazy dog.

dwsonuçları yazmak

The brown fox jumps over the lazy dog.

ve desonuçları

The  brown fox jumps over the lazy dog.

("The" ve "brown" arasındaki iki boşluğa dikkat edin.)


yAnk komutu davranır wve efarklı olarak karşılaştırılması ile gösterilebilir yeP:

The quickquick brown fox jumps over the lazy dog.

ve ywP:

The quick quick brown fox jumps over the lazy dog.

Ancak, ya ceslow<Esc>da yazarak cwslow<Esc>aynı şeyle sonuçlanır :

The slow brown fox jumps over the lazy dog.

Bu bir yerde belgelendi mi? Arkasındaki mantık nedir ve kullanılan bir komutun sonuçlarını nasıl tahmin edebilirim w?

Yanıtlar:


18

Bu özel bir durum. Kontrol WORD belgelerine "Özel durum" başlığı altında,:

Özel durum: "cw" ve "cW", imleç boş değilse, "ce" ve "cE" gibi işlem görür. Çünkü "cw" değişiklik sözcüğü olarak yorumlanır ve bir sözcük aşağıdaki boşlukları içermez. {Vi: "boşluk" ve ardından diğer boşluklar olduğunda "cw" yalnızca ilk boşluğu değiştirir; bu muhtemelen bir hatadır, çünkü "dw" tüm boşlukları siler}

Başka bir özel durum: "w" hareketini bir işleçle birlikte kullanırken ve taşınan son sözcük satırın sonunda olduğunda, bu sözcüğün sonu sonraki metindeki sözcük değil, çalıştırılan metnin sonu olur hat.

"E" nin orijinal Vi uygulaması buggy'dir. Örneğin, önceki satır boşsa, "e" komutu satırın ilk karakterinde duracaktır. Ancak "2e" kullandığınızda bu gerçekleşmez. Vim'de "ee" ve "2e" aynıdır, bu daha mantıklıdır. Bununla birlikte, bu Vi ve Vim arasında küçük bir uyumsuzluğa neden olur.


1
Neovim 0.2.1, bu davranışı değiştiren bir 'tıklamalar' bayrağı "_" (alt çizgi) ekler. neovim.io/doc/user/options.html#'cpoptions '
Justin M. Keyes

6

Hareketin cwvs. ile olan davranışı arasındaki fark dwbasit bir şekilde açıklanabilir: normalde bir kelimeyi değiştirmek isterseniz boşluktan sonra çıkacaksınız, bir kelimeyi silerken boşlukun da kaldırılmasını istersiniz.

Eğer boşluk nedense gitmesini istiyoruz yoksa (ı düzenli yeterli ama bir örnek düşünemiyorum) daha sonra kullanmak awhareketi: caw.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.