Wybierz tryb wizualny Vima „w”

1

Podczas używania gvim 7.3 mogę wybrać słowo, wpisując v, a następnie w. Wybrane słowo nie zawiera interpunkcji po słowie. Podczas używania vim 7.2 w systemie Linux, wybranie słowa przez wpisanie v, a następnie w, również wybiera następującą interpunkcję.

For example with this text and the cursor at the beginning of the line:
clk : in

On Windows, v w y o esc p produces
clk : in
clk 

On Linux, v w y o esc p produces
clk : in
clk :

Zwróć uwagę na dodatkowy dwukropek w systemie Linux

Dlaczego to? Jak sprawić, by VIM w Linuksie zachowywał się jak gvim na Windowsie (lub odwrotnie)?

nachum
źródło

Odpowiedzi:

1

vw wybierze tekst od kursora do końca bieżącego „słowa”, gdzie „słowo” to ciąg znaków z zestawu zdefiniowanego przez opcję „iskeyword”. Opcja „iskeyword” jest domyślnie ustawiona na zestaw znaków alfanumerycznych ASCII i podkreślenia (_).

Jeśli vw wybiera więcej niż to, wtedy coś, prawdopodobnie wtyczka typu pliku, dodało znaki do 'iskeyword', aby być, zdaniem autora wtyczki, bardziej przydatne podczas edycji bieżącego typu pliku. Aby dowiedzieć się, gdzie iskeyword jest ustawiany, wykonaj

:verbose set iskeyword?

Może się zdarzyć, że Twoja instalacja Windows Vim ma inny zestaw wtyczek niż instalacja Linux Vim, lub że twój Linux ~ / .vimrc ma włączone wykrywanie typów plików, a twój Windows ~ / _vimrc nie.

To zachowanie można zmienić, ale sposób, w jaki może lub powinien zostać zmieniony, będzie zależał od zachowania, które chcesz i jak iskeyword jest ustawiany.

garyjohn
źródło
Dzięki za odpowiedź. Sprawdziłem iskeyword i to samo w obu systemach. Wygląda na domyślny, jak zasugerowałeś.
nachum
Czy sprawdziłeś „iskeyword” natychmiast po zaobserwowaniu różnicy w zachowaniu w? Wartość 'iskeyword' może się zmienić podczas używania Vima ze względu na zachowanie wtyczek. Inną rzeczą do wypróbowania byłoby uruchomienie vim i gvim z opcjami -N -u NONE -i NONE i zobacz, czy nadal obserwujesz różnicę w zachowaniu w.
garyjohn
1

Możesz pisać viw aby wybrać „słowo wewnętrzne” (to bez otaczającej interpunkcji). viwoESCp wygenerowałoby to takie samo wyjście jak wersja systemu Windows.

FlyingFoX
źródło