Vim: kelime vs WORD


84

Vim öğreniyorum ve kafamı wordve arasındaki farka dolanamıyorum WORD.

Aşağıdakileri Vim kılavuzundan aldım.

Bir sözcük, beyaz boşluklarla (boşluklar, sekmeler) ayrılmış bir dizi harf, rakam ve alt çizgi veya diğer boş olmayan karakterlerden oluşur. Bu, 'anahtar kelime' seçeneği ile değiştirilebilir. Boş bir satır da bir kelime olarak kabul edilir.

SÖZCÜK, boşlukla ayrılmış bir dizi boş olmayan karakterden oluşur. Boş bir satır da bir SÖZCÜK olarak kabul edilir.

Hissettiğim wordve WORDsadece aynı şeydir. Her ikisi de beyaz boşluklarla ayrılmış boş olmayan karakterler dizisidir. Boş bir satır hem wordve olarak düşünülebilir WORD.

Soru:
Aralarındaki fark nedir?
Ve neden / ne zaman olur birileri kullanımı WORDüzerinde word?

Google ve SO aramasını zaten yaptım, ancak arama motorları WORD, wordaradığım gibi yorumluyor Vim word vs wordve elbette yararlı hiçbir şey bulamıyor.


2
Bu, adresinde açıklanmış ve hatta gösterilmiştir :h 03.1. Lütfen kullanım kılavuzunu kontrol edin.
glts

10
Sorunuz, arama yaparken bir şeyleri değiştirdi vim WORD and word- şimdi ilk arama sonucu :)
Al.G.

1
@ Al.G. Bildiğime sevindim. Teşekkürler!
ekim

2
İngilizcede 'veya' belirsizlik var. Söyledikleri şey şudur: Bir kelime, beyaz boşluklarla (boşluklar, sekmeler) ayrılmış bir dizi (harfler VEYA rakamlar VEYA alt çizgiler), XOR (boş olmayan diğer karakterler dizisi) içerir.
user1433150

@ user1433150 yardımcı oldu teşekkürler. Ancak bu açıklamayla bile hala kafa karıştırıcı bir şey var. "Veya boşlukla ayrılmış (boşluklar, sekmeler) diğer boş olmayan karakterler dizisi" derler, ancak bu doğruysa, o zaman herhangi bir kelime anlamına gelir . Bu yüzden bana öyle geliyor ki "her şeyi daha küçük bir set XOR" diyorlar. Bu doğru mu?
Charlie Parker

Yanıtlar:


115
  • SÖZCÜK her zaman boşlukla sınırlandırılır .
  • Bir sözcük, yapılandırılabilen, anahtar sözcük olmayan karakterlerle sınırlandırılmıştır . Boşluk karakterleri anahtar sözcük değildir ve genellikle diğer karakterler (gibi ()[],-) da değildir. Bu nedenle, bir sözcük genellikle WORD'den daha küçüktür; kelime gezintisi daha ayrıntılıdır.

Misal

This "stuff" is not-so difficult!
wwww  wwwww  ww www ww wwwwwwwww    " (key)words, delimiters are non-keywords: "-! and whitespace
WWWW WWWWWWW WW WWWWWW WWWWWWWWWW   " WORDS, delimiters are whitespace only

1
'W' işlevinin ne yaptığını değiştirmek için: set iskeyword kullanabileceğinizi unutmayın. Daha fazla bilgi için yardım 'iskeyword' bölümüne bakın.
Jessie Ross

Yukarıdaki örnek yanlış. Çift tırnak da kelimelerdir (veya 'anahtar kelime' seçeneğine bağlı olarak tek kelimenin bir parçasıdır). Bu nedenle, "w" ile de işaretlenmelidir. Hem de kısa çizgi.
Flashrunner

@Flashrunner Bu 'iskeyword' , Jared Ross tarafından belirtildiği gibi seçeneğe bağlıdır . Varsayılan olarak, yazdığım gibi çalışır.
Ingo Karkat

:set iskeyword=a-z,A-Z,\",- |This |"stuff" |is |not-so |difficult|! :set iskeyword=a-z,A-Z |This |"|stuff|" |is |not|-|so |difficult|! |- "w" nin durduğu yer. Gördüğünüz gibi bu her zaman bir kelimedir.
Flashrunner

Jared Ross'un yorumu da yanlış. iskeyword, 'w'nin yaptığı şeyi değiştirir,' W 'değil.
Flashrunner

20

İmlecim aşağıdaki satırdayken bunu yaparsam viw("iç seç word") app, şunu seçer app:

app/views/layouts/admin.blade.php

İmlecim aynı yerdeyken viW( WORD) yaparsam , tüm karakter dizisini seçer. A WORD, wordsİngilizce kelimeler gibi olmayan, yıldız işaretleri, eğik çizgiler, parantezler, köşeli parantezler vb. Gibi karakterleri içerir .


Yukarıdaki açıklamanın son paragrafı net değildir. Farkı açıklığa kavuşturacak bazı önemli sözcükler eksik.
2016

15

Vim belgelerine göre (: h 03.1)

  • Kelime, ".", "-" veya ")" gibi, kelime olmayan bir karakterle biter.

  • SÖZCÜK kesinlikle bir boşlukla biter. Bu normal anlamda bir kelime olmayabilir, dolayısıyla büyük harf olabilir.

Örneğin.

           ge      b          w                             e
           <-     <-         --->                          --->
    This is-a line, with special/separated/words (and some more). ~
       <----- <-----         -------------------->         ----->
         gE      B                   W                       E

İmleciniz m konumundaysa (yukarıda daha fazlası)

  • bir kelime 'daha fazla' anlamına gelir (yani 'kelime olmayan karakterle sınırlandırılır)

  • oysa SÖZCÜK 'daha fazla)' anlamına gelir. (yani yalnızca boşlukla sınırlandırılmış)

benzer şekilde, imleciniz p (özel) konumundaysa

  • bir kelime 'özel' anlamına gelir
  • SÖZCÜK 'özel / ayrılmış / kelimeler' anlamına gelir

14

Önceki cevapları tamamlamak için ... Bunu şöyle görselleştiriyorum; SÖZCÜK, kelimeden daha büyüktür, daha fazlasını kapsar ... görüntü açıklamasını buraya girin


0

Bunu söylemenin başka bir yolu. Eğer kodlamanız ve sınırlayıcılarda ve "(). [],:" Satırında duran satır boyunca ilerlemek istiyorsanız w kullanın.

Bunları atlamak ve sadece kelimelere atlamak istiyorsanız, bir roman ya da kısa hikayede olduğu gibi diyelim, W kullanın

Kodlama için muhtemelen en sık kullanılan küçük w'dir. Kodun neresinde olduğunuza bağlıdır.


0

"Kelime" nin tanımını anlarken bu bir gramer problemidir.

Bu tanımın Çince versiyonunda ilk başta sıkışıp kalıyorum (yanlış çeviri olabilir).


Tanım kesinlikle doğrudur, ancak şu şekilde okunmalıdır:

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>).

Boşluk karakterleri yalnızca iki aynı tür "kelime" yi sınırlarken gerekliydi


Parantez içindeki daha fazla örnek aşağıdaki gibidir:

(örnek ^ & $% ^ Örnek) üç "kelime": (örnek), (^ & $% ^) ve (Örnek)

(^ & ^ & ^ ^ && ^ & ^ ) iki "kelime": (^ & ^ & ^ ^) ve (&& ^ & ^ )

(stackoverflow içindeyiz) beş "kelime": (biz), ('), (yeniden), (in) ve (stackoverflow)

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.