2013-05-07 13 views
30

Sto cercando di chiarirlo dal libro di OReilly su Vim, ma gli esempi presentati non sono abbastanza chiari. La chiarificazione tramite esempi/casi d'uso invece di una spiegazione diretta sarebbe molto utile.Qual è la differenza tra i comandi s, c e r in vi/vim?

Il testo di esempio potrebbe essere:

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

Come su di loro provare per te stesso in Vim? Penso che sarebbe il modo migliore per capire quello che fanno. –

+3

L'ho fatto. Sebbene con tutte le sotto-opzioni che hanno, percepire la differenza non è così facile per un principiante come me. – lalit

+0

Ulteriori informazioni su come cercare i comandi e navigare all'interno di ': help'; è completo e offre molti suggerimenti. Non imparerai Vim alla stessa velocità degli altri editor, ma se ti impegni a imparare in modo continuo, si dimostrerà un editor molto potente ed efficiente. –

risposta

45

Supponete di avere foo nel documento, e il cursore è sul f. Ora, premendo rb lo cambierà in boo e tornerai in modalità comando. Premendo sb si otterrà lo stesso, ma ci si trova in modalità di inserimento e si possono inserire più caratteri. Infine, c richiede qualche tipo di movimento; per esempio. è possibile digitare cw per rimuovere l'intera parola e accedere alla modalità di inserimento. D'altra parte, cl è essenzialmente uguale a s.

+1

Per me "cw" rimuove tutti i caratteri dal cursore verso la fine della parola. "ciw" rimuove l'intera parola e ti mette in modalità di inserimento. –

+2

@Leonard Schuetz: 'cw' non ti porta in modalità inserimento? Questo è sorprendente. 'cw' e' ciw' di per sé dovrebbero comportarsi per lo più lo stesso; 'c3w' e' c3iw' no, però: per 'iw', gli spazi sono contati come parole separate. Ad esempio, digitando 'c3w' quando sul primo carattere di' abcd' si rimuoverà 'abc' (tre parole, senza contare gli spazi), mentre' c3iw' nella stessa situazione rimuoverà 'ab' (tre" parole ", la seconda uno è lo spazio). Entrambi entreranno quindi nella modalità di inserimento. – chirlu

+1

Per capire meglio cosa verrà eliminato con 'c', dovresti usare' v'. Esempio: 'v3iw'. Osservo anche che c'è una differenza tra 'v3iw' e' vi3w': 'v3iw' ==' v' + 3 x 'iw', mentre' vi3w' == 'vi' + 3 x' w'. Entrambi i lati sinistro e destro del '==' sono esattamente gli stessi. Questo è un buon modo per capire perché i risultati sono diversi. – Creak

18
:help c 
:help s 
:help r 

Facile.

Invece di sprecare il vostro tempo su quel libro, imparare a utilizzare la documentazione interna impressionante di Vim:

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

Ovviamente '$ vimtutor'. – timss

+0

E '$ vimtutor', naturalmente. – romainl

+0

@Nozdrum, [di quale sito web stai parlando?] (Http://i.imgur.com/bo04UaV.png) – romainl

Problemi correlati