---
title: "vi – Editor Commands für Unix/Linux"
url: "https://www.typo3.net/d/900306-vi-editor-commands-fur-unixlinux"
source: "typo3.net"
tags: ["Artikel","Tipp"]
created: "2008-04-09"
last_reply: "2023-01-29"
replies: 1
solved: false
page: 1
pages: 1
lang: "de"
---

# vi – Editor Commands für Unix/Linux

Artikel · 1 Antwort · gestartet 2008-04-09

## Eröffnungsbeitrag

**Sebastian Schmal** · 2008-04-09 · [Beitrag #1](https://www.typo3.net/d/900306-vi-editor-commands-fur-unixlinux/1)

Habe hier mal eine Auflistung von Befehlen für den VI – Editor unter Linux.
Auch im [Ubuntu-Forum](http://www.ubuntu-forum.de/artikel/22609/vi-editor-commands.html) nach zu lesen.

> **Der vi – Editor**
>
> vi ist ein full-screen-Editor der auf allen Unix-Systemen existiert und identisch zu bedienen ist. Im vi sind die beiden Modi command und insert zu unterscheiden. Im **command-Modus** können Positionier-, Lösch-, Such- und viele andere Operationen vorgenommen werden. Das Editieren von Text ist nur im **insert-Modus** möglich. Das Umschalten vom insert- in den command-Modus erfolgt immer mit der ESC-Taste. Nach Aufruf des vi befindet man sich grundsätzlich im **command-Modus**.
>
> [Bild: vi - Editor unter Linux (user.ingeniumdesign.de/…/vi_editor.jpg)](http://user.ingeniumdesign.de/ubuntu/vi_editor.jpg)
>
> *Aufruf des **vi***
>
> Starten läßt sich der Editor mit dem Befehl vi, beziehungsweise vim oder gvim:
> **vi [Dateiname]**
> öffnet die Datei Dateiname zum Bearbeiten oder legt diese, sofern sie noch nicht existiert, neu an.
>
> username> **vi brief1 brief2** – Editieren der Dateien brief1 und brief2
> username> **vi +18 brief –** Editor positioniert die Datei gleich auf Zeile 18
> username> **vi +/muster brief** – Editor positioniert die Datei gleich auf die Zeile mit dem Wort muster
> username> **vi -r brief** – Wiederherstellen der editierten Datei brief nach einem Systemabsturz
> username> **view brief** – Öffnet die Datei brief im read-only mode
>
> *Kommandos zum Umschalten in den **insert-Modus***
>
> **a** – Einfügen nach dem Cursor
> **i** – Einfügen vor dem Cursor
> **A** – Einfügen am Zeilenende
> **I –** Einfügen am Zeilenanfang
> **o** – Einfügen einer neuen Zeile nach der aktuellen Zeile
> **O** – Einfügen einer neuen Zeile vor der aktuellen Zeile
>
> *Positionieren des Cursors und Scrolling im **command-Modus***
>
> **h** – ein Zeichen nach links
> **l** – ein Zeichen nach rechts
> **j** – eine Zeile nach unten
> **k** – eine Zeile nach oben
>
> **w** – zum nächsten Wort oder Sonderzeichen
> **W** – zum nächsten Wort
> **b** – zum vorhergehenden Wort oder Sonderzeichen
> **B** – zum vorhergehenden Wort
> **e** – zum Ende des aktuellen oder nächsten Wortes oder Sonderzeichens
> **E** – zum Ende des aktuellen oder nächsten Wortes
>
> **^** – zum Anfang der Zeile (erstes sichtbares Zeichen)
> **0** – zum Anfang der Zeile (erstes Zeichen)
> **$** – zum Ende der Zeile
>
> **)** – zum nächsten Satz
> **(** – zum vorhergehenden Satz
> **}** – zum nächsten Absatz
> **{** – zum vorhergehenden Absatz
> **]]** – zum nächsten Abschnitt
> **[[** – zum vorhergehenden Abschnitt
> **G** – zum Ende der Datei
> **1G** – zum Anfang der Datei
>
> **H** – zum Anfang des Bildschirms
> **M –** zur Mitte des Bildschirms
> **L –** zur letzten Zeile des Bildschirms
> *<Ctrl>* **f –** einen Bildschirm vorwärts scrollen
> *<Ctrl>* **b –** einen Bildschirm rückwärts scrollen
>
> *Kommandos zum **Löschen** von Text*
>
> **x –** löscht ein Zeichen unter dem Cursor
> **dw –** löscht das aktuelle Wort
> **dd –** löscht die ganze Zeile
> **D –** löscht den Rest der aktuellen Zeile
> **d^ –** löscht von der Cursorposition bis zum Anfang der Zeile
> **dG –** löscht von der Cursorposition bis zum Datei-Ende
>
> ***Beenden** des Editors*
>
> **😡 –** Abspeichern des eingegebenen Textes
> **:wq –** Abspeichern des eingegebenen Textes
> **ZZ –** Abspeichern des eingegebenen Textes
> **:q –** Beenden ohne Abspeichern (falls Text nicht geändert wurde)
> **:q! –** Beenden ohne Abspeichern
>
> Das Beenden des Editors ist selbstverständlich nur vom command-Modus aus möglich.
>
> *Kommandos zum **Suchen** und **Ersetzen***
>
> **/muster –** Suche des Textmusters vorwärts
> **?muster –** Suche des Textmusters rückwärts
> **n –** Suche wiederholen
> **N –** Suche in umgekehrter Richtung wiederholen
>
> **c –** Ersetzen eines Objektes
> **C –** Ersetzen des Rests der Zeile
> **s –** Ersetzen des aktuellen Zeichens
> **S –** Ersetzen der ganzen Zeile
>
> Obige Ersetz-Operationen werden mit der *<ESC>*-Taste abgeschlossen. Für das Suchen nach Textmustern können auch reguläre Ausdrücke verwendet werden.
>
> *Für das **Ersetzen** von Textmustern gibt es noch eine andere Möglichkeit.*
>
> **:s/muster_alt/muster_neu/** – Ersetzen des nächsten Textmusters
> **:1,$s/muster_alt/muster_neu/g** – Ersetzen aller Textmuster in der Datei
>
> *Objektbezogene Kommandos*
>
> **c** – Ersetze das Objekt durch neue Eingabe
> **d** – Lösche Objekt
> **y** – Sichere Objekt
> **>** – Schiebe Objekt nach rechts
> **<** – Schiebe Objekt nach links
>
> *Als Objekte werden definiert*
>
> Wort (**w,W,b,B**) – Folge von Buchstaben oder Ziffern ohne Zwischenraum
> Satz (**(,)**) – Folge von Worten, die mit ‚.‘, ‚!‘ oder ‚?‘ abgeschlossen wird
> Absatz (**{,}**) – nach jeder Leerzeile
> Abschnitt (**]],[[**) – Begrenzung ist ein formfeed
>
> Die in Klammern stehenden Zeichen stellen die Charakterisierung des Objektes dar, die in Verbindung mit den objektbezogenen Kommandos benutzt wird.
>
> *Beispiele:*
>
> **>}** – Schiebt den nächsten Absatz eine Tab-Position nach rechts
> **yw** – Sichert das aktuelle Wort
> **cw –** Ersetzt das aktuelle Wort mit dem eingegebenen Text
> **d)** – Löscht den nächsten Satz (bis ‚.‘, ‚!‘, ‚?‘)
>
> *Marken*
>
> Marken werden benutzt, um Textblöcke zu markieren. Diese Textblöcke können dann weiteren Operationen unterzogen werden (Löschen, Verschieben usw.).
>
> **mx** – Setzt Marke, wobei x ein beliebiges Zeichen von a-z sein kann
> **‚x** – Positioniert den Cursor auf Marke x
>
> *Beispiele:*
>
> **d’h** – Löscht Text von der aktuellen Cursor-Position bis zur Marke h
> **:’e,’hd** – Löscht Text zwischen den Marken e und h
> **:’a,’ew** – file Schreibt Textblock zwischen den Marken a und h in ein file
>
> *Temporäre Puffer*
>
> Beim Editieren mit dem vi arbeitet man grundsätzlich in einem sog. main-buffer. Erst beim Abspeichern der Datei wird der Inhalt des main-buffers auf die Festplatte übertragen. Neben dem main-buffer können noch weitere temporäre Puffer angelegt werden. Als Namen können die Zeichen von a – z gewählt werden. Wie die oben erwähnten Marken stehen diese Puffer nur für die Dauer des Editierens zur Verfügung. Die Namens-Puffer werden mit vorangestellten Anführungszeichen gekennzeichnet ( “x ).
>
> *Beispiele:*
>
> **“byW** – Sichert das aktuelle Wort in den Puffer b
> **“bP** – Kopiert den Inhalt des Puffers b an die aktuelle Cursorposition
> **“h10dd** – Löscht die nächsten 10 Zeilen und sichert sie im Puffer h
> **“g5yy** – Die nächsten 5 Zeilen werden im Puffer g gesichert
>
> *Sonstige nützliche Kommandos*
>
> **.** – Wiederholung der letzten Aktion
> **u** – undo der letzten Änderung
> **U** – undo aller Änderungen in der aktuellen Zeile
> **:r –** file Einfügen einer Datei an der aktuellen Cursorposition
> **:!cmd** – Ausführen eines shell-Kommandos
>
> *vi-Parameter*
>
> Durch das Setzen diverser Parameter kann die Arbeitsweise des vi-Editors modifiziert werden. Diese Parameter können interaktiv während des Editierens eingegeben werden. Sollen dagegen die Modifikationen bei jedem künftigen vi-Aufruf zur Verfügung stehen, so ist es erforderlich, die entsprechenden Kommandos in der Datei .exrc im eigenen HOME-Verzeichnis einzutragen.
>
> **:set** – Anzeige aller Optionen, die geändert wurden
> **:set all** – Anzeige aller möglichen Optionen und deren aktueller Werte
> **:set eb** – Vor jeder Fehlermeldung ertönt die Bell
> **:set ic –** Mustersuche case insensitive
> **:set sw=10** – Setzt die Distanz für shift-Operationen
> **:set number** – Jede Zeile wird mit ihrer Zeilennummer angezeigt
> **:set list –** Zeigt auch nicht sichtbare Zeichen an
>
> Das Rücksetzen der meisten Parameter erfolgt durch ein vorangestelltes **no** (z.B. mit *:set nonumber* verschwindet eine vorher eingestellte Zeilennummerierung.)

*Ursprünglich erschienen am 09.04.2008 auf typo3-probleme.de.*

## Antworten

### [#2](https://www.typo3.net/d/900306-vi-editor-commands-fur-unixlinux/2) · Unbekannter Benutzer · 2023-01-29

*Ein Leser schrieb:*

Hallo Sebastian, sehr cooler Post;)

Grüße

Valera

---

Quelle: „vi – Editor Commands für Unix/Linux“, typo3.net, https://www.typo3.net/d/900306-vi-editor-commands-fur-unixlinux
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
