\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[german]{babel}
\usepackage{schulung,xspace}


\ifpdfoutput
  \usepackage[backref,colorlinks,bookmarks]{hyperref}
  \usepackage{thumbpdf,ae}
  \pdfinfo{
     /Title    (vi-Schulung)
     /Author   (Lutz Donnerhacke)
     /Subject  (vi)
     /Keywords (vi, editor)
  }
\fi



\newcommand{\vi}   {\befehl{vi}}
\newcommand{\ed}   {\befehl{ed}}
\newcommand{\test} {(\emph{Ausprobieren!})}

\begin{filecontents*}{demo.txt}
vi steht für Visual Editor und ist der Wysiwyg Zusatz für den Editor ed.

Im Ernst: Zu Beginn der Rechentechnik arbeitete man mit Fernschreibern, an
denen man eine Zeile eintippen oder ausgeben konnte. Wollte man eine Datei
bearbeiten, so hat man sich die interessante Zeile ausgeben lassen und dann
diese gelöscht oder eine neue Zeile eingefügt. Man konnte auch sagen,
"Ersetze mir das Wort bla durch blubber". Man musste natürlich zwischen der
Eingabe von neuem Text und der Eingabe von Kommandos beim ed unterscheiden.
Nicht sehr komfortabel, oder?
\end{filecontents*}


\begin{document}
\title{\vi\ -- Navigieren \& Bearbeiten}
\author{\texttt{Lutz.Donnerhacke@Jena.Thur.De}}
\date{3. Februar 2000}
\maketitle

\begin{abstract}
    \noindent Schulungsunterlage für Einsteigerkurse \rede{\vi} im
    Internetraum des Jugendzentrums Trend in Jena durchgeführt vom Thüringen
    Netz e.V. mit freundlicher Unterstützung des Jugendzentrums Trend, der
    Stadt Jena und vieler fleißiger Helfer.
    
    \noindent
    Dieser Kurs dient dazu, den Editor \vi\ soweit kennenzulernen, dass man
    damit Texte ansehen und bearbeiten kann.
\end{abstract}

\section{Worum geht's?}
 Um Texte zu erfassen und zu bearbeiten, ja selbst im Texte nur anzusehen,
 verwendet man einen \fachwort{Editor}{Anwendung, die Texte aus dem
   Dateisystem laden, anzeigen und modifizieren kann.}. \vi\ steht für
 \emph{Visual Editor} und ist der \fachwort{Wysiwyg}{Was Du siehst, ist auch
 das, was hinten rauskommt.} Zusatz für den Editor \ed.

 Im Ernst: Zu Beginn der Rechentechnik arbeitete man mit Fernschreibern, an
 denen man eine Zeile eintippen oder ausgeben konnte. Wollte man eine Datei
 bearbeiten, so hat man sich die interessante Zeile ausgeben lassen und dann
 diese gelöscht oder eine neue Zeile eingefügt. Man konnte auch sagen,
 \rede{Ersetze mir das Wort \emph{bla} durch \emph{blubber}}. Man musste
 natürlich zwischen der Eingabe von neuem Text und der Eingabe von Kommandos
 beim \ed\ unterscheiden. Nicht sehr komfortabel, oder?

 \vi\ gestattet es, einen bestimmten Ausschnitt der zu bearbeitenden Datei
 auf dem Bildschirm anzuzeigen und dort mit einem \fachwort{Cursor}{Eine
 Marke, die die Position angibt.} sich an die Stelle zu begeben, die man
 bearbeiten will.

 Hat man diese Position erreicht, so kann man den dort stehenden Text
 löschen, überschreiben oder neuen Text einfügen. Dabei ist es auch möglich,
 gelöschten Text an anderer Stelle neu einzufügen. Das funktioniert über
 eine \fachwort{Zwischenablage}{Eine Art Kurzzeitgedächtnis des Editors.}.

 Abschließend kann man natürlich auch den geänderten Text abspeichern oder
 die Änderungen verwerfen.

 \aufgabe{Wie wird der Cursor auf den ersten Terminals ausgesehen
   haben?}{Der Druckkopf des Fernschreibers \mbox{--}~selbst nur eine
   elektrische Schreibmaschine~-- hatte oben eine Markierung, die auf
   die nächste druckbare Position zeigte. Jedes Zeichen wurde sofort gedruckt.}

\section{Navigieren}

 Zum Üben starten Sie erstmal den \vi\ mit \kommando{vi}{demo.txt}. Die
 Datei \argument{demo.txt} wurde vom Übungsleiter bereitgestellt. Es
 erscheint ein Bildschirm wie in \figurename~\ref{fig:start}. Der Cursor
 steht dabei auf dem ersten Buchstaben, dem \verb|v|.
 
 \begin{figure}[htbp]
     \begin{center}
         \scriptsize
         \fbox{\vbox{
             \hbox{\texttt{\underline{v}i steht für Visual Editor und ist der Wysiwyg Zusatz für den Editor ed.}}
             \hbox{}
             \hbox{\texttt{Im Ernst: Zu Beginn der Rechentechnik arbeitete man mit Fernschreibern, an}}
             \hbox{\texttt{denen man eine Zeile eintippen oder ausgeben konnte. Wollte man eine Datei}}
             \hbox{\texttt{bearbeiten, so hat man sich die interessante Zeile ausgeben lassen und dann}}
             \hbox{\texttt{diese gelöscht oder eine neue Zeile eingefügt. Man konnte auch sagen,}}
             \hbox{\texttt{"{}Ersetze mir das Wort bla durch blubber"{}. Man musste natürlich zwischen der}}
             \hbox{\texttt{Eingabe von neuem Text und der Eingabe von Kommandos beim ed unterscheiden.}}
             \hbox{\texttt{Nicht sehr komfortabel, oder?}}
             \hbox{\texttt{\textasciitilde}}
             \hbox{\texttt{\textasciitilde}}
             \hbox{\texttt{"{}demo.txt"{} 9 lines, 552 chars}}}}
     \end{center}
     
     \caption{Startbildschirm}
     \label{fig:start}
 \end{figure}

 Die Cursortasten sind eine neumodische Erfindung. Alles was man als
 wirklich immer existierend voraussetzen kann, sind die Ziffern und
 Buchstaben auf der Tastatur. Demzufolge navigiert man innerhalb von \vi\
 meistens mit den Tasten \T H, \T J, \T K und \T L. Tippen Sie einfach
 einige Male \T L für die Bewegung nach links, \T H für die Bewegung nach
 rechts.

 \aufgabe{Was machen die Tasten \T J und \T K ? \test}{\T J
   geht eine Zeile tiefer und \T K eine Zeile höher. Beachten Sie, dass
   der Cursor in kürzeren Zeilen zurückspringen kann und dann wieder die
   richtige Spalte erreicht.}

 Natürlich gehen diese Bewegungen auch mit den normalen Cursortasten \test.
 Allerdings sollte man sich darüber klar sein, dass diese nicht notwendig sind.
 
 Tippt man zuerst eine Zahl und dann eine der Aktionstasten, so wird diese
 Aktion so oft ausgeführt, wie die Zahl angibt.

 \aufgabe{Auf welchem Zeichen steht man nach der Eingabe von \T 1 \T 7 \T L,
   wenn der Cursor am Textanfang steht? \test}{Auf dem \texttt{a} von
   \texttt{Visual}.}

 Die Tasten \T W und \T B springen wortweise vorwärts und rückwärts.
 Mit \TShift\ zusammen werden die Wortgrenzen durch Leerzeichen festgelegt.

 \aufgabe{Warum bleibt der Cursor mit \T W am \texttt{ü} von \texttt{für}
   hängen? Wie kann man das vermeiden?}{\vi\ erkennt die Wortgrenzen daran,
   dass nach einigen Buchstaben etwas anderes kommt. Die Umlaute werden
   üblicherweise nicht als Buchstaben erkannt. Frühe Rechnersysteme hatten
   diese Zeichen gar nicht. Sollte bei Ihnen das \texttt{ü} nicht besonders
   behandelt werden, so denken Sie das nächste Mal an eine kleine
   Aufmerksamkeit für Ihren Administrator.}

 \T E springt an das nächste Wortende. \T 0 wechselt an den Anfang der
 Zeile, \T\$ an das Zeilenende. \ST G an das das Ende der Datei. \CT B
 blättert einen Bildschirm hoch und \CT F einen Bildschirm runter. \ST H
 springt an den Anfang des Bildschirms, \ST L an das Ende. Natürlich kann
 man das auch alles mit den einfachen Cursortasten machen. Es ist nur
 manchmal praktischer, die Abkürzung zu kennen.

 Manchmal muss man an die Stelle springen, an der eine bestimmte Wortgruppe
 steht. Man sieht die Worte aber von Hand hinlaufen? Viel zu unbequem! Mit
 \T / gelangt man in die unterste Zeile. Dort gibt man seinen Suchbegriff
 ein. Wird dieser mit \TEnter bestätigt, so springt der Cursor an die
 richtige Stelle. Mit \T N und \ST N kann man vorwärts oder rückwärts
 weitersuchen.
 
 \aufgabe{Was passiert bei \ST H \T / \T O \T D \T E \T R \TEnter\
   \T 3 \T N im Demonstrationstext?}{In der letzten Zeile erscheint die
   Ausgabe \texttt{(wrapped)} und der Cursor bleibt stehen. \T 3 \T N springt
   dreimal nach vorn. Nur zwei weitere Sequenzen von \texttt{oder} vorkommen,
   springt das dritte \T N an die erste Fundstelle.}

 Die \fachwort{Richtungstasten}{Eine Taste, die den Cursor bewegt, am
   häufigsten wohl \T W und \ST W.} sollte man auswendig lernen, nicht nur
 weil man sie im nächsten Abschnitt benötigt. Deswegen: \emph{Jetzt
 ausprobieren!}

 \aufgabe{Nehmen Sie sich einen Zettel und einen Stift und notieren Sie die
   Wirkungen der Richtungstasten.}{Den Zettel benötigen Sie in Ihrer
   Geldbörse, diese Anleitung bleibt jedoch im Schulungsraum. Also nicht
   rumfaulenzen!}

\section{Eingaben}

 Mit der Taste \T I wechselt man in die Eingabe. Alle folgenden Tasten
 werden als Zeichen in die Datei vor die Cursorposition geschrieben. Mit der
 Taste \TEsc\ kommt man wieder in den Kommandomodus zurück.
 
 Mit \T U kann man die letzte Änderung rückgängig machen. Das hilft aber oft
 nicht viel, hier genügt es, um immer wieder neu ansetzen zu können.

 Fügen Sie vor dem Wort \texttt{Rechentechnik} das Wort \texttt{alten} ein!
 \test

 Mit der Taste \ST I wechselt man ebenfalls die Eingabe. Allerdings
 wird nach der Cursorposition eingefügt. \test
 
 \aufgabe{Wie kommt man aus dem Eingabemodus \ST I wieder heraus?}
 {Auch mit \TEsc.}

 Will man Text löschen, so tippt man einfach auf \T X. Löschen Sie
 \texttt{alten} wieder!
 
 Es ist umständlich, zeichenweise zu löschen, deswegen kann man mit \T D
 \mbox{--}~gefolgt von einer Richtungstaste~-- von der aktuellen Stelle
 in die angegeben Richtung löschen. Um die ganze aktuelle Zeile zu löschen,
 kann man \T D \T D eingeben.
 
 Gelöschten Text kann man mit \T P nach und mit \ST P vor der aktuellen
 Cursorposition wieder einfügen. Auf diese Weise kann man kopieren!

 \aufgabe{Was passiert bei \T D \T E?}{Es wird zum nächsten Wortende
   gelöscht.}

 \aufgabe{Warum ist \T X \T P auf der \vi-Tasse als besonders interessanter
   Befehl mit aufgeführt?}{\T X löscht das Zeichen unter dem Cursor. Da \T P
   den gelöschten Text \mbox{--}~das einzelne Zeichen~-- \emph{nach} der
   aktuellen Cursorposition wieder einfügt, vertauscht diese
   Tastenkombination effektiv zwei Zeichen.}

 Da es ebenso umständlich ist, Text erst zu löschen und dann neu zu tippen,
 kann man mit \T R ein Zeichen überschreiben und mit \ST R in einen
 Überschreibmodus wechseln.
 
 Mit \T C und einer Richtungstaste kann man den so `übersprungenen' Text
 gegen einen selbst eingegebenen austauschen. Dabei ersetzt der neue Text den
 alten, ohne den Text außerhalb zu überschreiben.

 \aufgabe{Ersetzen Sie das Wort \texttt{Rechentechnik} durch
   \texttt{Computer}?}{Sie stellen sich auf den Anfang der Wortes und tippen
   dort \T C \T W. Alternativ kann man sich auch auf das Ende stellen und \T C
   \T B eingeben.

   Wem das alles zu kompliziert ist, der löscht das Wort mit
   \T D \T W (oder \T D \T B oder ganz einfach mit \T X) und fügt ein neues
   mit \T I ein.
   
   Will man \texttt{Rechentechnik} durch \texttt{Computertechnik} ersetzen,
   bietet sich \T C \T / \T T \T E \TEnter\ an.}

 \aufgabe{Warum ist die \vi-Tasse so klein?}{Weil \vi\ in sich logisch ist.
   Wiederholungen, Aktionen und Richtungen sind nicht voneinander abhängig.}

\section{\vi\ verlassen}

 Aus dem Kommandomodus gelangt man nach der Eingabe von \T: in die unterste
 Zeile. Dort können wesentlich längere Kommandos eingegeben werden. Zum
 Verlassen ohne Abspeichern \zb gibt man \befehl{q!}, sonst \befehl{w} ein.
 
 Auch hier gelangt man mit \TEsc\ wieder in den normalen Kommandomodus. Man
 kann generell sagen: Wer öfter mal \TEsc\ drückt, macht nicht mehr falsch,
 als seine Mitmenschen zu nerven, weil es dauernd piept.

 Die weiteren Kommandos, die hier möglich sind, sprengen den Rahmen dieser
 Einführung.

 \aufgabe{Verlassen Sie \vi\ und starten Sie \befehl{vi} ohne Angabe einer
   Datei. Was kann man nun tun?}{Der Schirm ist leer, man kann jetzt mit \T
   I in den Eingabemodus umschalten und anfangen zu arbeiten. Abspeichern
   kann man das Produkt dann mit \kommando{w}{\texttt{"{}}datei\texttt{"{}}}.
   Ein einfaches \befehl{w} hilft deswegen nicht, weil \vi\ nicht weiß, wie
   die Datei heißen soll.}

\loesungen{Lösungen zu den Aufgaben}
\end{document}
