Vim : 단어 대 WORD


82

나는 빔을 배우고 사이의 차이 주위에 내 머리를 정리하고 수 없습니다 wordWORD.

Vim 매뉴얼에서 다음을 얻었습니다.

단어는 일련의 문자, 숫자 및 밑줄 또는 공백이 아닌 다른 문자로 구성되며 공백 (공백, 탭,)으로 구분됩니다. 이는 'iskeyword'옵션으로 변경할 수 있습니다. 빈 줄도 단어로 간주됩니다.

WORD는 공백으로 구분 된 일련의 공백이 아닌 문자로 구성됩니다. 빈 줄도 WORD로 간주됩니다.

느낌 wordWORD단지 같은 일이다. 둘 다 공백으로 구분 된 공백이 아닌 문자의 시퀀스입니다. 빈 줄은 word및 으로 간주 될 수 있습니다 WORD.

질문 :
그들 사이의 차이점은 무엇입니까?
그리고 누군가가 왜 / 언제 WORD이상 사용 word합니까?

나는 이미 Google과 SO 검색을 수행했지만 검색 엔진은 내가 검색하는 것처럼 해석 WORD하고 물론 유용한 것을 찾지 못할 것입니다.wordVim word vs word


2
자세한 내용은에서 설명하고 설명 :h 03.1합니다. 사용 설명서를 확인하십시오.
glts

10
검색 할 때 질문이 바뀌 었습니다. vim WORD and word이제 첫 번째 검색 결과입니다. :)
Al.G.

1
@ Al.G. 알게되어 기뻐. 감사!
octref

2
영어 '또는'에는 모호성이 있습니다. 의미는 다음과 같습니다 . 단어는 공백 (공백, 탭,)으로 구분 된 (문자 OR 숫자 또는 밑줄), XOR (다른 비 공백 문자의 시퀀스)의 시퀀스로 구성됩니다.
user1433150

도움이 된 @ user1433150 감사합니다. 그러나 그 설명에도 불구하고 여전히 혼란스러운 것이 있습니다. 그들은 "또는 공백이 아닌 다른 문자의 연속, 공백 (공백, 탭,)으로 구분됨"이라고 말하지만 이것이 사실이면 단순히 모든 단어 를 의미 합니다 . 그래서 그들이 "작은 세트 XOR 모든 것"이라고 말하는 것 같습니다. 그 맞습니까?
Charlie Parker

답변:


113
  • WORD는 항상 공백으로 구분됩니다 .
  • 단어는 구성 가능한 비 키워드 문자 로 구분됩니다 . 공백 문자는 키워드가 아니며 일반적으로 다른 문자 (예 :)도 키워드 ()[],-가 아닙니다. 따라서 일반적으로 단어는 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'옵션에 따라 한 단어의 일부). 따라서 'w'로 표시되어야합니다. 대시뿐만 아니라.
Flashrunner 19

@Flashrunner 'iskeyword' Jared Ross가 언급했듯이 옵션 에 따라 다릅니다 . 기본적으로 내가 작성한대로 작동합니다.
Ingo Karkat 19

: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

Jared Ross의 의견도 잘못되었습니다. iskeyword는 'W'가 아니라 'w'가하는 일을 변경합니다.
Flashrunner

20

커서가 다음 줄 에 있는 동안 " viw내부 선택"을 수행 하면 다음을 선택합니다 .wordappapp

app/views/layouts/admin.blade.php

내가 할 경우 viW( WORD내 커서가 같은 장소에있는 동안), 그것은 문자의 전체 순서를 선택합니다. A WORD에는 words별표, 슬래시, 괄호, 대괄호 등과 같이 영어 단어와 같지 않은 문자가 포함됩니다 .


위 설명의 마지막 단락은 명확하지 않습니다. 차이를 분명하게 만들 몇 가지 중요한 단어가 누락되었습니다.
Praym

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

공백 문자는 동일한 유형의 '단어'를 구분할 때만 필요했습니다.


다음과 같이 괄호 안에 더 많은 예 :

(예 ^ & $ % ^ 예) 세 개의 "단어":( 예), (^ & $ % ^) 및 (예)

(^ & ^ & ^ ^ && ^ & ^ ) 두 개의 "단어": (^ & ^ & ^ ^) 및 (&& ^ & ^ )

(우리는 stackoverflow에 있습니다) 5 개의 "단어": (we), ( '), (re), (in) 및 (stackoverflow)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.