Vim'in kaçış modunda w ve W arasındaki fark nedir?


19

İmleci hareket ettirmek için vim yardım quickref komutlarına bakıyorum. Aşağıdaki satırlar beni karıştırıyor çünkü her ikisinin de aynı şekilde çalıştığını görüyorum. Birisi bana bir örnekle farkı ayrıntılandırabilir mi?

N  w            N words forward
N  W            N blank-separated WORDS forward

Aynı soru e ve E için de geçerlidir.

Yanıtlar:


34

Bu hile sayfasına göre noktalama işareti geliyor gibi görünüyor.

w   jump by start of words (punctuation considered words)
W   jump by words (spaces separate words)
e   jump to end of words (punctuation considered words)
E   jump to end of words (no punctuation)

Misal

demo kullanarak w

          ss of w

demo kullanarak W

          W

İlk demoda wimlecin noktalama işaretine ne zaman sürekli vurulduğuna dikkat edin, 2. demoda noktalama işareti atlanır. Bu, küçük harfli komutlar ve büyük harfli eşdeğerleri arasındaki farktır.


@slm: Harika bir demo için çok teşekkürler. böyle bir demo ile de ans okumak gerek
rahul.deshmukhpatil

5

Aslında oldukça basittir, wsadece bir sonraki kelimeye atlar, ancak her türlü noktalama işareti veya boşluk kelimeleri kırar. Wendüstriyel güçlü bir sonraki sözcük komutuna benzer, kelimeler sekme, boşluk veya satırsonu gibi yalnızca boşlukla sınırlandırılır. wbununla başa çıkmak istediğinizde sınırlayıcı noktalama işaretlerinde de durur.

Farkı ana bilgisayar adlarıyla en yararlı buluyorum:

birdman.cartoons.fictional.com # Fictional host

İle w, ana bilgisayar adının ve noktaların her bir parçasında durursunuz. Wtüm ana bilgisayar adını atlar ve #. Bunlar hem de uygulanır dve csilme ve kelimeleri değiştirmek için.

Yukarıdaki satırın başına yerleştirilirse, birdman.cartoonsbaşka bir şeyle değiştirmek isterseniz 3cw, ilk iki parçanın ikisini de ve ortadaki noktayı değiştirmek için kullanabilirsiniz . WTüm ana bilgisayar adını yeniden yazmadan bunu yapamazsınız .


2

Noktalama işaretlerinin Vim'in bir kelimeyi neyin sınırladığını nasıl etkileyebileceğini düşünerek en iyi anlaşılan bir farktır.

Bu örnek metin durumunda:

This line is space separated with no commas
however, this line is—note—comma, separated,see

wmüzakere edilecek sadece yer olduğu için ilk satırdaki her kelimenin ilk harfine mutlu bir şekilde geçecektir. Her kelimenin ilk harfleri üzerinde alighting, noktalama 2. hatta kötü başarısız olur ve virgül, tireler. Satır 2'de kelimeden kelimeye gitmek için Shiftw1'i kullanmanız gerekir .

1. O zaman bile, Vim "not – virgül" ü tek bir kelime olarak görür.


1

Aradaki fark vim'in dahili yardım sayfalarında bulunabilir. Önce w ile W ve W'nin bir açıklamasını :helpalalım :help W:

  • w sözcükleri ileri sarar. | Münhasır | hareket.
  • W [sayı] WORDS ileri. | Münhasır | hareket.

Şimdi kelime ve WORD tanımlarının ne olduğunu bilmek istiyoruz. İle tekrar manuel Arama :help wordve :help WORDbiz onları bulmak.

  • Bir kelime a sequence of letters, digits and underscores, veya a sequence of other non-blank characters, separated with white space(boşluklar, sekmeler,) öğelerinden oluşur . Bu, 'iskeyword' seçeneğiyle değiştirilebilir. Boş bir satır da bir kelime olarak kabul edilir.
  • KELİME oluşur a sequence of non-blank characters, separated with white space. Boş bir satır da bir WORD olarak kabul edilir.
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.