2013-05-07 7 views
30

Ich versuche das aus dem OReilly-Buch über Vim zu erklären, aber die vorgestellten Beispiele sind nicht klar genug. Klärung über Beispiele/Use-Cases statt direkter Erklärung wäre sehr hilfreich.Was ist der Unterschied zwischen den Befehlen s, c und r in vi/vim?

Der Beispieltext könnte:

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

Wie über sie für sich selbst in Vim versuchen? Ich denke, das wäre der beste Weg, um zu verstehen, was sie tun. –

+3

tat ich. Mit all den Unteroptionen, die sie haben, ist es für einen Anfänger wie mich nicht einfach, den Unterschied wahrzunehmen. – lalit

+0

Erfahren Sie, wie Sie Befehle nachschlagen und durch die eingebaute ': help' gehen; es ist umfassend und bietet viele Tipps. Sie werden Vim nicht so schnell lernen wie andere Redakteure, aber wenn Sie sich für kontinuierliches Lernen entscheiden, wird es sich als sehr leistungsfähiger und effizienter Editor herausstellen. –

Antwort

45

Angenommen, Sie foo in dem Dokument haben, und der Cursor auf dem f. Drücken Sie jetzt rb, um dies in boo zu ändern, und Sie befinden sich wieder im Befehlsmodus. Drücken Sie sb wird das gleiche erreichen, aber Sie sind im Einfügemodus und können mehr Zeichen einfügen. Schließlich erfordert c eine Art von Bewegung; z.B. Sie können cw eingeben, um das ganze Wort zu entfernen und in den Einfügemodus zu wechseln. Auf der anderen Seite ist cl im Wesentlichen das Gleiche wie s.

+1

Für mich "cw" entfernt alle Zeichen vom Cursor gegen Ende des Wortes. "ciw" würde das ganze Wort entfernen und Sie in den Einfügemodus versetzen. –

+2

@Leonard Schuetz: 'cw' bringt dich nicht in den Einfügemodus? Das ist überraschend. 'cw' und' ciw' an sich sollten sich weitgehend gleich verhalten; 'c3w' und' c3iw' hingegen nicht: Für 'iw' werden Leerzeichen als separate Wörter gezählt. ZB wird 'c3w' eingegeben, wenn auf das erste Zeichen von' abcd' 'abc' (drei Wörter, Leerzeichen werden nicht gezählt) gesetzt, während' c3iw' in derselben Situation 'ab' (drei" Wörter ", das zweite Wort entfernt) einer ist der Raum). Beide werden dann in den Einfügemodus wechseln. – chirlu

+1

Um besser zu verstehen, was mit 'c' gelöscht wird, sollten Sie stattdessen' v' verwenden. Beispiel: 'v3iw'. Ich bemerke auch, dass es einen Unterschied zwischen "v3iw" und "vi3w" gibt: "v3iw" == "v" + 3 x "iw", während "vi3w" == "vi" + 3 x "w". Die linke und rechte Seite des '==' sind genau gleich. Das ist eine gute Möglichkeit zu verstehen, warum die Ergebnisse unterschiedlich sind. – Creak

18
:help c 
:help s 
:help r 

Einfach.

Statt Ihre Zeit auf dem Buch verschwenden, lernen, wie Vim ist genial interne Dokumentation zu verwenden:

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

Und natürlich '$ vimtutor'. – timss

+0

Und '$ vimtutor', natürlich. – romainl

+0

@Nozdrum, [über welche Website sprichst du?] (Http://i.imgur.com/bo04UaV.png) – romainl

Verwandte Themen