2013-05-07 20 views
30

Próbuję wyjaśnić to z książki OReilly na temat Vima, ale przedstawione przykłady nie są wystarczająco jasne. Wyjaśnienie za pomocą przykładów/przypadków użycia zamiast bezpośrednich wyjaśnień byłoby bardzo pomocne.Jaka jest różnica między poleceniami s, c oraz r w vi/vim?

Tekst Próbka może być:

With a 
screen editor, 
you can 
scroll the page, move the cursor. 
+0

Jak o próbując je dla siebie w vim? Myślę, że byłby to najlepszy sposób, aby zrozumieć, co robią. –

+3

Zrobiłem. Mimo wszystkich podopcji, które mają, postrzeganie różnicy nie jest tak łatwe dla początkującego, jak ja. – lalit

+0

Dowiedz się, jak wyszukiwać polecenia i poruszać się po wbudowanym ': help'; jest obszerny i oferuje wiele wskazówek. Nie nauczysz się Vima tak szybko, jak inni redaktorzy, ale jeśli zaangażujesz się w ciągłe uczenie się, okaże się on bardzo potężnym i wydajnym edytorem. –

Odpowiedz

45

Załóżmy masz foo w dokumencie, a kursor znajduje się na f. Teraz naciśnięcie rb zmieni to na boo i powrócisz do trybu poleceń. Naciśnięcie klawisza sb spowoduje to samo, ale jesteś w trybie wstawiania i możesz wstawić więcej znaków. Wreszcie, c wymaga pewnego rodzaju ruchu; na przykład możesz wpisać cw, aby usunąć całe słowo i przejść do trybu wstawiania. Z drugiej strony, cl jest w zasadzie taki sam jak s.

+1

Dla mnie "cw" usuwa wszystkie znaki z kursora pod koniec słowa. "ciw" usunie całe słowo i wprowadzi cię w tryb wstawiania. –

+2

@Leonard Schuetz: 'cw' nie prowadzi do trybu wstawiania? To zaskakujące. 'cw' i' ciw' samo w sobie powinno zachowywać się w większości tak samo; 'c3w' i' c3iw' nie, jednak: Dla 'iw' spacje są liczone jako oddzielne słowa. Np. Wpisanie "c3w", gdy na pierwszym znaku 'abcd' usunie' abc' (trzy słowa, nie licząc spacji), podczas gdy 'c3iw' w tej samej sytuacji usunie' ab' (trzy "słowa", drugie jeden jest przestrzenią). Oba wejdą w tryb wstawiania. – chirlu

+1

Aby lepiej zrozumieć, co zostanie usunięte przy pomocy 'c', powinieneś użyć' v' zamiast tego. Przykład: 'v3iw'. Zauważam również, że istnieje różnica między 'v3iw' a' vi3w': 'v3iw' ==' v' + 3 x 'iw', podczas gdy' vi3w' == 'vi' + 3 x' w'. Zarówno lewa, jak i prawa strona "==" są dokładnie takie same. To dobry sposób na zrozumienie, dlaczego wyniki są różne. – Creak

18
:help c 
:help s 
:help r 

Łatwy.

Zamiast tracić czas na tej książce, nauczyć się korzystać z niesamowitą wewnętrzną dokumentację vim za:

:h s 
:h :command 
:h 'option' 
:h function() 
:h ctrl-x 
:h i_ctrl-x 
:h subject 
:h foo<Tab> 
:helpgrep foo 
+4

I oczywiście '$ vimtutor'. – timss

+0

I '$ vimtutor', oczywiście. – romainl

+0

@Nozdrum, [o której stronie mówisz?] (Http://i.imgur.com/bo04UaV.png) – romainl

Powiązane problemy