Vim: word so với WORD


82

Tôi đang học Vim và không thể hiểu sự khác biệt giữa wordWORD.

Tôi nhận được những điều sau đây từ hướng dẫn sử dụng Vim.

Một từ bao gồm một chuỗi các chữ cái, chữ số và dấu gạch dưới, hoặc một chuỗi các ký tự không trống khác, được phân tách bằng khoảng trắng (dấu cách, tab,). Điều này có thể được thay đổi với tùy chọn 'iskeyword'. Một dòng trống cũng được coi là một từ.

WORD bao gồm một chuỗi các ký tự không trống, được phân tách bằng khoảng trắng. Một dòng trống cũng được coi là một WORD.

Tôi cảm thấy wordWORDchỉ là một điều giống nhau. Chúng đều là một chuỗi các ký tự không trống được phân tách bằng khoảng trắng. Một dòng trống có thể được coi là cả hai wordWORD.

Câu hỏi:
Sự khác biệt giữa chúng là gì?
Và tại sao / khi nào ai đó sẽ sử dụng WORDhơn word?

Tôi đã thực hiện tìm kiếm Google và SO, nhưng công cụ tìm kiếm của họ diễn giải WORDnhư wordvậy giống như tôi đang tìm kiếm Vim word vs wordvà tất nhiên sẽ không tìm thấy bất kỳ điều gì hữu ích.


2
Điều này được giải thích và thậm chí được minh họa tại :h 03.1. Vui lòng kiểm tra hướng dẫn sử dụng.
glts

10
Câu hỏi của bạn đã thay đổi mọi thứ khi tìm kiếm vim WORD and word- đó là kết quả tìm kiếm đầu tiên bây giờ :)
Al.G.

1
@ Al.G. Mừng được biết. Cảm ơn!
octref

2
Có sự mơ hồ trong tiếng Anh 'hoặc'. Ý họ muốn nói là: Một từ bao gồm một chuỗi (chữ cái HOẶC chữ số HOẶC dấu gạch dưới), XOR (một chuỗi các ký tự không trống khác), được phân tách bằng khoảng trắng (dấu cách, tab,).
user1433150

@ user1433150 cảm ơn rất hữu ích. Nhưng ngay cả với sự làm rõ đó vẫn có điều gì đó khó hiểu. Họ nói: "hoặc một chuỗi các ký tự không trống khác, được phân tách bằng khoảng trắng (dấu cách, tab,)" nhưng nếu điều đó là đúng thì nó chỉ có nghĩa là bất kỳ từ nào. Vì vậy, đối với tôi dường như họ nói "một tập hợp nhỏ hơn XOR mọi thứ". Đúng không?
Charlie Parker

Câu trả lời:


113
  • WORD luôn được phân cách bằng khoảng trắng .
  • Một từ được phân tách bằng các ký tự không phải từ khóa , có thể định cấu hình. Các ký tự khoảng trắng không phải là từ khóa và thường thì các ký tự khác (như ()[],-) cũng không. Do đó, một từ thường nhỏ hơn WORD; điều hướng từ chi tiết hơn.

Thí dụ

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
Lưu ý rằng bạn có thể sử dụng: set iskeyword để thay đổi chức năng của 'W'. Xem: help 'iskeyword' để biết thêm thông tin.
Jessie Ross

Ví dụ trên là sai. Dấu ngoặc kép cũng là các từ (hoặc một phần của một từ tùy thuộc vào tùy chọn 'iskeyword'). Vì vậy, nó cũng nên được đánh dấu bằng 'w'. Cũng như dấu gạch ngang.
Flashrunner 14/07/19

@Flashrunner Điều đó phụ thuộc vào 'iskeyword' tùy chọn, như đã được đề cập bởi Jared Ross. Theo mặc định, nó hoạt động như tôi đã viết.
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|! |- là nơi 'w' dừng. Như bạn có thể thấy, nó luôn luôn là một từ.
Flashrunner

Nhận xét của Jared Ross cũng sai. iskeyword thay đổi những gì 'w' làm, không phải 'W'.
Flashrunner

20

Nếu tôi làm viw("select bên trong word") trong khi con trỏ của tôi đang appở dòng sau, nó sẽ chọn app:

app/views/layouts/admin.blade.php

Nếu tôi thực hiện viW( WORD) trong khi con trỏ của tôi ở cùng một vị trí, nó sẽ chọn toàn bộ chuỗi ký tự. A WORDbao gồm các ký tự words, giống như các từ tiếng Anh, thì không, chẳng hạn như dấu hoa thị, dấu gạch chéo, dấu ngoặc đơn, dấu ngoặc, v.v.


Đoạn cuối của lời giải thích ở trên là không rõ ràng. Nó thiếu một số từ quan trọng có thể tạo ra sự khác biệt rõ ràng.
Cầu nguyện

14

Theo tài liệu Vim (: h 03.1)

  • Một từ kết thúc bằng ký tự không phải từ, chẳng hạn như ".", "-" hoặc ")".

  • Một WORD kết thúc đúng bằng một khoảng trắng. Đây có thể không phải là một từ theo nghĩa thông thường, do đó là chữ hoa.

ví dụ.

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

Nếu con trỏ của bạn ở vị trí m (trong số các điểm khác ở trên)

  • một từ sẽ có nghĩa là 'nhiều hơn' (tức là được phân tách bằng ký tự không phải từ ')')

  • trong khi WORD có nghĩa là 'nhiều hơn).' (tức là chỉ được phân cách bằng khoảng trắng)

tương tự, nếu con trỏ của bạn ở p (đặc biệt)

  • một từ có nghĩa là 'đặc biệt'
  • trong khi WORD có nghĩa là 'đặc biệt / tách biệt / từ'

14

Để bổ sung cho các câu trả lời trước ... Tôi hình dung nó như thế này; WORD lớn hơn word, nó bao gồm nhiều hơn ... nhập mô tả hình ảnh ở đây


0

Một cách khác để nói nó. Nếu bạn đang viết mã và muốn di chuyển qua dòng dừng ở dấu phân cách và dòng thứ mà "(). [],:" Sử dụng w.

nếu bạn muốn bỏ qua những từ đó và chỉ chuyển đến những từ có thể nói như một cuốn tiểu thuyết hoặc truyện ngắn, hãy sử dụng W.

Để mã hóa, w nhỏ có lẽ được sử dụng thường xuyên nhất. Phụ thuộc vào vị trí của bạn trong mã.


0

Đó là một vấn đề ngữ pháp trong khi hiểu định nghĩa của "từ".

Lúc đầu, tôi gặp khó khăn với phiên bản tiếng Trung của định nghĩa này (có thể bị dịch sai).


Định nghĩa chắc chắn là đúng, nhưng nó nên được đọc như thế:

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

Các ký tự khoảng trắng chỉ cần thiết khi phân định hai loại 'từ' giống nhau


Các ví dụ khác trong ngoặc như sau:

(ví dụ ^ & $% ^ Ví dụ) ba "từ": (ví dụ), (^ & $% ^) và (Ví dụ)

(^ & ^ & ^ ^ && ^ & ^ ) hai "từ": (^ & ^ & ^ ^) và (&& ^ & ^ )

(chúng tôi đang ở trong stackoverflow) năm "từ": (chúng tôi), ('), (lại), (trong) và (stackoverflow)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.