Jaka jest różnica między W i W w trybie ucieczki vima?

19

Patrzę na komendy szybkiego odnośnika pomocy vima do poruszania kursorem. Mylą mnie następujące wiersze, ponieważ oba działają tak samo. Czy ktoś mógłby wyjaśnić mi różnicę na przykład.

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

To samo pytanie dotyczy również e i E.

rahul.deshmukhpatil
źródło

Odpowiedzi:

34

Według tego ściągawki wydaje się, że sprowadza się to do interpunkcji.

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)

Przykład

demo przy użyciu w

          ss z w

demo przy użyciu W

          ss z W.

Zauważ w pierwszym demo, kiedy wciągle uderzane jest, że kursor wyląduje na interpunkcji, podczas gdy w drugim demo interpunkcja jest pomijana. Jest to różnica między poleceniami pisanymi małymi literami a ich odpowiednikami wielkimi literami.

slm
źródło
@slm: wielkie dzięki za tak świetne demo. z takim demem nie trzeba też czytać ans
rahul.deshmukhpatil
5

To jest właściwie dość proste, wwystarczy przejść do następnego słowa, ale każda interpunkcja lub biała spacja rozbija słowa. Wjest jak polecenie następnego słowa o dużej sile przemysłowej, słowa są ograniczone tylko białymi spacjami, bez względu na to, czy są to tabulatory, spacje czy znaki nowej linii. wzatrzymuje się również na znakach interpunkcyjnych, na wypadek, gdybyś chciał sobie z tym poradzić.

Uważam, że różnica jest przydatna najczęściej w przypadku nazw hostów:

birdman.cartoons.fictional.com # Fictional host

Za pomocą wzatrzymujesz się na każdej części nazwy hosta i kropek. Wpo prostu pomija całą nazwę hosta i przechodzi do #. Są również zastosowanie zarówno do di cza usuwanie i zmienianie słów.

Jeśli zostanie umieszczony na początku powyższej linii, jeśli chcesz zastąpić birdman.cartoonsgo czymś innym, użyjesz 3cwdo zastąpienia obu pierwszych dwóch części i kropki na środku. Nie można tego zrobić Wbez ponownego wpisywania całej nazwy hosta.

kurtm
źródło
2

Jest to różnica, którą najlepiej zrozumieć, biorąc pod uwagę wpływ interpunkcji na koncepcję tego, co ogranicza słowo.

W przypadku tego przykładowego tekstu:

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

wz przyjemnością przejdzie do pierwszej litery każdego słowa w pierwszym wierszu, ponieważ jest tylko miejsce do negocjacji. Nie powiedzie się źle na linii 2 z interpunkcją, zapalając się na pierwszych literach każdego słowa oraz przecinkach i myślnikach. Aby przejść od słowa do słowa w linii 2, musisz użyć Shiftw1 .

1. Nawet wtedy Vim widzi „to-note-przecinek” jako pojedyncze słowo.

jasonwryan
źródło
1

Różnicę można znaleźć na wewnętrznych stronach pomocy vima. Najpierw uzyskajmy opis w i W z :helpw lub :help W:

  • w [policz] słowa do przodu. | wyłączne | ruch.
  • W [count] WORDS forward. | wyłączne | ruch.

Teraz chcemy wiedzieć, jakie są definicje słowa i WORD. Przejrzyj instrukcję ponownie za pomocą :help wordi :help WORD, my ją znajdziemy.

  • Słowo składa się z a sequence of letters, digits and underscoreslub a sequence of other non-blank characters, separated with white space(spacji, tabulatorów). Można to zmienić za pomocą opcji „iskeyword”. Pusta linia jest również uważana za słowo.
  • SŁOWO składa się z a sequence of non-blank characters, separated with white space. Pusta linia jest również uważana za SŁOWO.
użytkownik9154844
źródło