Supportnet Computer
Planet of Tech

Supportnet / Forum / Textverarbeitung

an Textende springen mit vi ?





Frage

Hallo, kennt jemand den cmd um ans ende des Textes bei vi zu springen?

Antwort 1 von yahman

vi-Editor

Der vi-Editor ist ein einfacher zeilenorientierter Programm-Editor mit Ganzseitenanzeige, der auf allen UNIX-Rechnern standardmäßig verfügbar ist. Seine Anhänger schätzen ihn wegen seines zweckmäßigen funktionalen Komforts.
Arbeitsmodus

Der vi-Editor befindet sich immer in einem von drei Zuständen:
-dem Befehlsmodus,
-dem Textmodus,
-dem Anweisungsmodus.

Nach dem Start ist der Editor immer im Befehlsmodus als Grundzustand: alle Tasteneingaben werden direkt als Befehle interpretiert.
Im Textmodus werden alle Tasten als Texteingabe interpretiert (außer ESC ).
Im Anweisungsmodus werden alle Tasten zur Eingabe einer Editor-Anweisung interpretiert (außer ESC und CR).
Zurück in den Befehlsmodus kommt man durch die ESC-Taste (im Anweisungsmodus wird die Anweisung dann nicht ausgeführt) oder im Anweisungsmodus durch die CR-Taste (dann wird die Anweisung ausgeführt)
.
Kontrolle
Aufruf:
vi file
Bearbeitung der Datei file;
vi -r file
Wiederherstellen der Bearbeitung der Datei file wenn diese zuvor unterbrochen wurde;
vi file1 file2
Bearbeiten mehrerer Dateien nacheinander;
vi
Bearbeiten einer neuen Datei.
(Zwischenzeitiges) Beenden:
ZZ
Sichern der Datei und Beenden der Arbeit, so daß mit dem Aufruf von vi -r file die Arbeit fortgesetzt werden kann.
Statusanzeige:
CTRL-g
Anzeige des aktuellen Status: Filename, Veränderungskennung, aktuelle Zeilennummer, Gesamtanzahl der Zeilen, prozentualer Anteil der Vorzeilen an allen.
Korrektur von Befehlen:
u
Zuletzt ausgeführten Befehl rückgängig machen (undo);
u
Gesamte aktuelle Zeile wiederherstellen;
CTRL-l
Bildschirm auffrischen.
Wiederholung von Befehlen:
.
Der zuletzt ausgeführte Befehl wird wiederholt (kann durch eine Zahl vor dem Punkt vervielfacht werden).

Antwort 2 von yahman

Befehle

Bei einigen Befehlen steht vor der Angabe des Befehlscodes das Platzhalter-Zeichen *. Diese Befehle können wiederholt ausgeführt werden, indem man anstelle des Platzhalters die Anzahl der Ausführungen als ganze Zahl angibt. Fehlt diese Angabe, wird der Befehl nur einmal ausgeführt.

Die meisten Befehle beziehen sich auf einzelne Zeichen oder ganze Zeilen. Einige betreffen folgende Texteinheiten (dies wird in der Befehlsbeschreibung mit dem Platzhalter-Zeichen # bezeichnet, der durch die unten angegebenen Codes zu ersetzen ist):
w
Wörter (als eine Folge von Non-Blank-Zeichen),
(
Sätze (enden mit ., ! oder ? gefolgt von zwei Blanks) oder
{
Absätze (enden mit einer Leerzeile).

Der Text wird in einem Hauptpuffer abgelegt, der am Bildschirm sichtbar ist. Daneben gibt es einen Yank-Puffer für gelöschten bzw. kopierten Text und Textregister, die mit char bezeichnet werden (char vertritt einen einzelnen Buchstaben).
Die Zeilen eines Textes können beliebig lang sein; sie werden in der Bildschirmdarstellung gefaltet.
Texteingabe eröffnen:
a
Text an aktuelle Cursorposition anhängen (append);
i
Text vor aktueller Cursorposition einfügen (insert);
o
Text als neue Zeile hinter der aktuellen Zeile einfügen;
*s
Zeichen an aktueller Cursorposition durch Text ersetzen (substitute).

Die Anweisungen A, I, O und S wirken analog, beziehen sich jedoch auf (neue) Zeilen.
Bewegen des sichtbaren Textausschnitts (Fensters):
*CTRL-e
Eine Zeile abwärts;
*CTRL-y
Eine Zeile aufwärts;
*CTRL-d
Eine halbe Seite abwärts;
*CTRL-u
Eine halbe Seite aufwärts;
*CTRL-f
Eine Seite abwärts;
*CTRL-b
Eine Seite aufwärts.
Bewegen des Cursors:
*h
Ein Zeichen nach links;
*l
Ein Zeichen nach rechts;
*j
Eine Zeile nach unten;
*k
Eine Zeile nach oben;

Diese Tasten liegen direkt nebeneinander; in den meisten vi-Versionen können auch die normalen Cursortasten benutzt werden.
*+
Auf das erste Wort der nächsten Zeile;
*-
Auf das erste Wort der vorigen Zeile;
*(
Sprung zum Anfang des aktuellen Satzes;
*)
Sprung zum Anfang des nächsten Satzes;
*{
Sprung zum Anfang des aktuellen Absatzes;
*}
Sprung zum Anfang des nächsten Absatzes.

*CR
An den Anfang der nächsten Zeile;
*BLANK
Ein Zeichen nach rechts;
*BKSP
Ein Zeichen nach links;
0
An den Anfang der aktuellen Zeile;
^
Sprung zum ersten Nonblank-Zeichen der aktuellen Zeile;
$
Sprung ans Ende der aktuellen Zeile;
H
In die oberste Bildschirmzeile (High);
M
In die mittlere Bildschirmzeile (Medium);
L
In die unterste Bildschirmzeile (Low);
G
Sprung auf die letzte Zeile;
nG
Sprung in die n-te Zeile;
*b
Ein Wort nach links zu dessen erstem Zeichen;
*w
Ein Wort nach rechts zu dessen erstem Zeichen;
*e
Ein Wort nach rechts zum letzten Zeichen;

Die BefehlenB, W bzw. E haben die jeweils analoge Wirkung, ignorieren aber Sonderzeichen als Wortbestandteile.

Antwort 3 von yahman

Text ersetzen:
*cc
Ersetze Zeile durch Text;
*c#
Ersetze Einheit durch Text;
*C
Ersetze Restzeile durch Text;
*rchar
Zeichen an aktueller Cursorposition ersetzen durch das Zeichen char;
R
Zeichen ab aktueller Cursorposition durch Text ersetzen (replace);
~
Wandle Zeichen von Groß- nach Kleinschreibung bzw. vice versa um.
Text löschen:
x
Zeichen an aktueller Cursorposition löschen;
*dd
Aktuelle Zeile löschen (delete);
d$
Restzeile löschen;
*d#
Aktuelle Einheit löschen;
D
Restzeile ab Cursorposition löschen;
dG
Alle Zeilen ab der aktuellen bis zum Dateiende löschen;
d1G
Alle Zeilen ab der aktuellen bis zum Dateianfang löschen;
J
Textzeilen verknüpfen (junk).
Suchen von Text:
fchar
Zeichen char in derselben Zeile weiter rechts suchen;
Fchar
Zeichen char in derselben Zeile weiter links suchen;
;
Suche - wie zuvor angegeben - wiederholen;
,
Suche - wie zuvor, aber in entgegengesetzter Richtung - wiederholen;
/muster
Text muster vorwärts suchen;
?muster
Text muster rückwärts suchen;
n
Suche wiederholen (next);
N
Suche in umgekehrter Richtung wiederholen.
Verschieben bzw. Kopieren von Text:

Gelöschter oder kopierter Text steht in einem Puffer für nachfolgende Befehle zur Verfügung.
p
Kopierten bzw. gelöschten Text hinter aktueller Cursorposition (Zeile) einfügen (put);
xp
Vertauschen von zwei Zeichen;
*yy
Aktuelle Zeile kopieren;
*y#
Aktuelle Einheit kopieren (yank).

Durch Voransetzen einer Textregister-Bezeichnung vor den Yank-Befehl wird in das bezeichnete Register kopiert. Durch entsprechende Angabe vor dem put-Befehl wird das Textregister hinter der Cursorposition eingefügt. Also z.B.:
"ayy
kopiert die aktuelle Zeile in das Register a;
"ap
fügt den Text in Register a als nächste Zeile ein.
Anweisungen

Anweisungen werden während ihrer Eingabe am unteren Bildschirmrand angezeigt. Im Prinzip können alle ed-Anweisungen eingegeben werden, insbesondere:
rname
Datei name einlesen und an die aktuelle Zeile anfügen (read);
n
Nächste Datei bearbeiten (next);
w
Datei sichern (write);
wname
Datei als File name speichern;
wname
Aktuelle Zeile als File name speichern;
n,mwname
Zeilen n bis m als File name speichern;
wq
Datei sichern und Editor verlassen;
q
Editor verlassen (solange nicht geändert wurde);
q!
Editor verlassen, ohne Datei zu sichern;
e!
Alle Änderungen seit letztem Sichern rückgängig machen.
s/eins/zwei/g
An allen Stellen den Text eins durch den Text zwei ersetzen (substitute global).
!cmd
Führe ein einzelnes Shell-Kommando cmd aus;
sh
Wechsle in eine Shell und kehre - in der Regel nach mehreren Shell-Kommandos - mit exit bzw. CTRL-z wieder in den Editor zurück.

gruessle yahman

Ich bin auch erreichbar im supportnet-chat bzw. unter icq 104914022

Antwort 4 von Leif

zwar bei google was gefunden, aber so schön nicht, danke.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: