Vim:単語と単語


82

私はVimを学んでいるとの違いを中心に私の頭をラップすることはできませんwordWORD

Vimのマニュアルから次のようになりました。

単語は、文字、数字、アンダースコアのシーケンス、または空白以外の文字のシーケンスで構成され、空白(スペース、タブ、)で区切られます。これは、「iskeyword」オプションで変更できます。空の行も単語と見なされます。

WORDは、空白で区切られた空白以外の文字のシーケンスで構成されます。空の行もWORDと見なされます。

私は感じるwordWORDちょうど同じことです。これらは両方とも、空白で区切られた空白以外の文字のシーケンスです。空の行はとの両方wordと見なすことができますWORD

質問:
それらの違いは何ですか?
そして、なぜ/時に誰かの使用WORDを超えますかword

私はすでにグーグルとSO検索を行ったが、彼らの検索エンジンは私が探しているように解釈WORDし、もちろん何も役に立たない。wordVim word vs word


2
これはで説明され、図解されてい:h 03.1ます。ユーザーマニュアルを確認してください。
glts 2014

10
あなたの質問は検索するときに物事を変えましたvim WORD and word-それは今最初の検索結果です:)
Al.G.

1
@ Al.G。知ってよかった。ありがとう!
octref 2015年

2
英語の「または」にはあいまいさがあります。彼らが言うことは次のとおりです。単語は、空白(スペース、タブ、)で区切られた一連の(文字または数字またはアンダースコア)、XOR(他の空白以外の文字のシーケンス)で構成されます。
user1433150 2018

@ user1433150ありがとうございました。しかし、その明確化があっても、まだ混乱することがあります。彼らは言う:「または空白(スペース、タブ、)で区切られた他の空白以外の文字のシーケンス」が、それが本当なら、それは単に任意の単語を意味します。ですから、彼らは「より小さなセットXORすべて」と言っているように私には思えます。あれは正しいですか?
チャーリーパーカー

回答:


113
  • WORDは常に空白で区切られます
  • 単語は、構成可能な非キーワード文字で区切られます。空白文字はキーワードではなく、通常、他の文字(など()[],-)もキーワードではありません。したがって、単語は通常、単語よりも小さくなります。単語のナビゲーションはよりきめ細かくなります。

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
:set iskeywordを使用して、「W」の機能を変更できることに注意してください。詳細については、:help'iskeyword 'を参照してください。
ジェシーロス

上記の例は間違っています。二重引用符も単語です(または「iskeyword」オプションによっては1つの単語の一部)。したがって、「w」もマークする必要があります。ダッシュだけでなく。
FlashRunnerの

@Flashrunner 'iskeyword' Jared Rossが述べたように、これはオプションによって異なります。デフォルトでは、私が書いたように動作します。
IngoKarkat19年

: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」が停止します。ご覧のとおり、それは常に言葉です。
FlashRunnerの

ジャレッド・ロスのコメントも間違っています。iskeywordは、「W」ではなく「w」の動作を変更します。
FlashRunnerの

20

次の行でカーソルがオンのときに実行するとviw(「内部を選択word」)app、次が選択されますapp

app/views/layouts/admin.blade.php

カーソルが同じ場所にあるときにviWWORD)を実行すると、文字のシーケンス全体が選択されます。AにWORDwords、アスタリスク、スラッシュ、括弧、角かっこなど、英語の単語のように含まれない文字が含まれます。


上記の説明の最後の段落は不明確です。違いを明確にするであろういくつかの重要な言葉が欠けています。
祈り2016

14

Vimのドキュメントによると(:h 03.1)

  • 単語は、「。」、「-」、「)」などの単語以外の文字で終わります。

  • WORDは厳密に空白で終わります。これは通常の意味での単語ではない可能性があるため、大文字です。

例えば。

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

カーソルがmにある場合(上記の詳細)

  • 単語は「もっと」を意味します(つまり、「で区切られます)」単語以外の文字)

  • 一方、WORDは「もっと」を意味します。(つまり、空白のみで区切られます)

同様に、カーソルが(特別な)pにある場合

  • 単語は「特別」を意味します
  • 一方、WORDは「特別/分離/単語」を意味します

14

前の答えを補足するために...私はそれをこのように視覚化します。WORDは単語よりも大きく、より多くを網羅しています... ここに画像の説明を入力してください


0

別の言い方をすれば。コーディングが必要で、区切り文字で停止する行を移動したい場合は、「()。[] 、:」はwを使用します。

それらをバイパスして、小説や短編小説のように単語にジャンプしたい場合は、Wを使用します。

小さなwをコーディングするために、おそらく最も頻繁に使用されるものです。コード内のどこにいるかによって異なります。


0

これは、「単語」の定義を理解する上での文法上の問題です。

私は最初、この定義の中国語版で立ち往生しています(誤訳の可能性があります)。


定義は間違いなく正しいですが、次のように読む必要があります。

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

空白文字は、2つの同じタイプの「単語」を区切る場合にのみ必要でした。


括弧内のその他の例は次のとおりです。

(例^&$%^例)3つの「単語」:(例)、(^& $%^)および(例)

(^ &^&^ ^ && ^&^ )2つの「単語」:(^&^ &^ ^)と(&& ^ &^

(私たちはstackoverflowにいます)5つの「単語」:(私たち)、( ')、(re)、(in)、(stackoverflow)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.