Vim Kurz Referenz

by

Vim Editor Kurzreferenz

Befehlsmodus

Kommando
Beschreibung
i Insertmodus, damit kann man editieren
Cursortasten navigieren
h, j, k, l navigieren, wenn Cursortasten tod sind
G letzte Zeile Dokument
nG gehe zu Zeile n
dd Zeile löschen (in Zwischenablage)
yy Zeile in Zwischenablage
nyy n Zeilen in Zwischenablage
p Zwischenablage einfügen unterhalb
/Muster Suche nach Muster
n Suche wiederholen
set ic Umschalten Suche „ignore case“
set noic Umschalten Suche case sensitiv
:1,$s/from/to/gc Ersetze from nach to im ganzen Dokument mit Nachfrage
Strg+G Aktuelle Zeilennummer und Dateiname anzeigen
:n Nächste Datei bearbeiten
:rew Vorherige Datei bearbeiten
:w Datei speichern
:q Editor verlassen
u Undo
. letzte Änderung wiederholen

Editiermodus

Kommando
Beschreibung
ESC zurück in Befehlsmodus
Cursortasten navigieren

 

Vim Auführlicher

Navigieren

Kommando
Beschreibung
Cursortasten navigieren
h, j, k, l navigieren, wenn Cursortasten tod sind
1G erstes Zeile Dokument
G letzte Zeile Dokument
nG Gehe zu Zeile n (Bsp: 20G)
0 erstes Zeichen Zeile, wie Pos1
$ letztes Zeichen Zeile
w Nächstes Wort. Anfang des Wortes. (auch W)
b Vorheriges Wort. Anfang des Wortes. (auch B)
e Nächstes Wort, Wortende. (auch E)
) Nächster Satz.
( Vorheriger Satz.
} Nächster Absatz.
{ Vorheriger Absatz.
Return Erstes nichtleeres Zeichen nächste Zeile
n| Spalte n aktuelle Zeile
Strg-F/Page-Down Seite vorwärts.
Strg-B/Page-Up Seite rückwärts.

Suchen und Ersetzen

/Muster Suche nach Muster
?Muster Suche nach Muster rückwärts
n letzte Suche wiederholen
% Passende Klammer suchen
:s/from/to/ Ersetze erstes Auftreten von from in Zeile
:s/from/to/g (g=global) Ersetze alle from durch to in Zeile
:x,y s/from/to/ von x bis y, siehe auch Hinweise
:s/from/to/gic g=global, i=ignorecase, c=nachfragen
:1,$s/from/to/gc Ersetze from nach to im ganzen Dokument mit Nachfrage

Markierungen

mx (x=a..z), Setze Markierung x
‚x Gehe zu Markierung x, Zeilenanfang
`x Gehe zu Markierung

Löschen und Zwischenablage

x Zeichen löschen
nx n Zeichen nach rechts löschen
nX n Zeichen nach links löschen
dd aktuelle Zeile löschen
ndd n Zeilen löschen
d/Muster Löschen bis Muster
dw Löschen Wort
D Rest der aktuellen Zeile löschen
d^ Löschen bis Zeilenanfang
dG Löschen bis Datei Ende
„xdd Zeile löschen und in Puffer x
p Zwischenablage einfügen unterhalb
P Zwischenablage einfügen oberhalb
„xp Inhalt von Puffer x einfügen
yy Zeile in Zwischenablage
nyy n Zeilen in Zwischenablage
yw Wort in Zwischenablage
y$ Rest der Zeile in Zwischenablage
„xyy Zeile in Zwischenpuffer x kopieren

Moduswechsel

i Edit vor dem Cursor
A Anhängen Zeilenende
o Neue Zeile unter der Aktuellen.
O Neue Zeile über den Aktuellen
C Ändere bis Zeilenende
cw Ändere Wort
cc Ändere aktuelle Zeile
s (substitute) Zeichen löschen und in insert Modus
S (substitute line) Zeile löschen und insert Modus

Speichern und Beenden

Kommando
Beschreibung
:w abspeichern
:q verlassen
:q! verlassen, Änderungen verwerfen
:wq speichern & verlassen
:x speichern wenn nötig und verlassen
:w Datei Datei unter neuem Namen speichern
:w! speichern, auch wenn Schreibschutz
% aktueller Dateiname, z.B. :w %.old

Arbeiten mit mehreren Dateien

Kommando
Beschreibung
:n Nächste Datei bearbeiten
:rew Vorherige Datei bearbeiten
:n Dateien Neue Liste von Dateien angeben, die editiert werden sollen
:args oder :ar Liste der editierten Dateien anzeigen

Shellinteraktion

Kommando
Beschreibung
:r Datei Datei an Cursorposition einfügen
:r !Befehl Befehlsausgabe einfügen
:! Befehl ausführen und zurückkehren
n1,n2!Befehl Zeilen an Befehl senden und durch Ausgabe ersetzen
n!!Befehl Nächste n Zeilen an Befehl und durch Ausgabe ersetzen
strg-z Editor in Hintergrund, wiederholen mit fg

Sonstiges

u Undo
Strg-G Dateinamen und Zeilennummer anzeigen
. letzte Änderung wiederholen
~ Groß/Kleinschreibung umdrehen
J (join) Aktuelle Zeile mit folgender vereinen
>> Zeile nach rechts schieben
<< Zeile nach links schieben
n<< oder n>> n Zeilen nach links/rechts schieben
>’x oder <‚x Zeilen bis Label x nach rechts/links schieben
>} oder <} bis zum Absatzende nach rechts/links schieben
% Sprung zwischen Klammerpaar, wenn man auf Klammer steht

Möglichkeiten im Editiermodus

Kommando
Beschreibung
ESC zurück in Befehlsmodus
Cursortasten navigieren

Ex-Befehle (:Befehle)

Kommando
Beschreibung
:ab Abk String Abk wird beim tippen immer durch String ersetzt.
:set all Alle gesetzten Optionen anzeigen
:set ai autoindent
:set ic ignorecase für Suche
:set sw=n shiftwidth Anzahl Spaces bei >> und << Befehlen
:set ts=n tabstop festlegen
:syntax on Syntax Highlighting einschalten
:help Eingebaute Hilfe
:set mouse=a Mausunterstützung einschalten

Konfigurations-Dateien

  • in Konfigurationsdateien werden hauptsächlich set-Befehle eingebunden, um das Verhalten des Editors anzupassen. Es ist jedoch auch noch viel mehr möglich, Vim hat eine mächtige Konfigurationssprache mit bedingten Verzweigungen.
  • ~/.vimrc – hier kann jeder Benutzer persönliche Anpassungen vornehmen.
  • /etc/vimrc – für globale Einstellungen für alle Benuzter
  • Alles hinter doppelten Anführungsstrichen ist Kommentar (gewöhnungsbedürftig)

Aufruf in der Shell

  • Start mit einer Datei
    vi datei
  • Start mit mehreren Dateien
    vi datei1 datei2 …
  • Start mit einer Datei, Positionierung auf Zeile n
    vi +n datei
  • Start von vim, wenn dieser nicht der Standard-Editor ist
    vim datei
  • Start des vim auf grafischer Benutzeroberfläche
    gvim datei

 

Hinweise

  • um bei ex-Befehlen (:Befehle) Zeilenbereiche anzugeben, gibt es folgende Möglichkeiten:
    • x,y als numerischer Wert bezeichnet die Zeilennummer
    • $ steht für letzte Zeile
    • % steht für alle Zeilen einer Datei
    • ‚a,’b von Label a bis Label b
    • ohne Angabe wird die aktuelle Zeile verwendet
    • x, x-n von x bis x-n, auch x+n ist möglich
    • /Muster/ vorwärts bis zur nächsten Zeile, die Muster enthält
    • ?Muster? rückwärts bis zur Zeile, die Muster enthält
  • mit :set option schaltet man eine Option ein mit :set nooption wieder aus,

    z.B. :set ic oder :set noic

Links


 

Vi command line

 

Learn Linux: use vi command

 

Vi command overview

In other post, we showed you some most useful Linux commands. Today, we will show you detail about a very useful command when we working with linux. That is vi command. VI command is on almost every UNIX and Linux system. This tutorial will show you how to

  • Navigate a document using vi command
  • Use basic vi modes
  • Insert, edit, delete, copy and find text by vi command

Prerequisites

You must have a basic knowledge of linux and a working Linux system or you can go to practice online. Sometimes different versions of a program will bring out differently output, so your output may not always look exactly like the example show here.

Let’s figure out vi command in detail

Start vi:

vi filename
E.g:
vi myfile.txt

 

vi filename
E.g:
vi myfile.txt

 

Exit vi:

Pressing Esc will leave insert mode and return you to command mode where these commands should work. :q!
Quit editing the file and skip all changes.

:q!
Quit editing the file and skip all changes.

 

:wq!
Write the file and quit whether modified or not.It’s generally safer to omit the ! unless you know what you’re doing.

:wq!
Write the file and quit whether modified or not.It’s generally safer to omit the ! unless you know what you’re doing.

 

:!
Run a shell command.
E.g:
:! ls
After hit Enter the ls result will show and hit enter again to return vi editing.

 

:!

Run a shell command.

E.g:

:! ls

After hit Enter the ls result will show and hit enter again to return vi editing.

 

:e!
This will reload the file, discard all changes you have made.

 

:e!

This will reload the file, discard all changes you have made.

 

 

ZZ
Write the file if it has beend modified. Then exit. This is very common way for normal vi exit.

 

 

Notes:

1. When you type (:), the cursor will move to the bottom line of your screen then you can type in the command and parameters. 2. If you omit the (!) from the command. you may receive an error message such as saying changes have not beend saved or the output file cannot be written 3. The (:) commands have longer form are (:quit, :write, :edit). Use it if you want Navigate vi

These commands help you move around in a file h
Move left one character on the current line

 

h
Move left one character on the current line

 

j
Move down to the next line

 

k
Move up to the previous line

 

k

Move up to the previous line

 

l
Move right one character on the current line

 

w
Move to the next word on the current line

 

e
Move to the next end of word on the current line

 

b
Move to the previous beginning of the word on the current line

 

Ctrl + f
Scroll forward one page

 

Ctrl + b
Scroll backward one page

 

 

Note:

If you type a number before any of these commands, then the command will be executed that number of times. E.g: 5l will move right 5 characters. Moving to lines

G
Moves to a specific line in your file.
E.g: 3G will move to line 3. With no parameter, G will go to the last line of the file

 

H
Moves relative to the top line on the screen.

E.g: 3H moves to the line currently to the 3rd line from the top of your screen.

 

 

L
Is like H, except that movement is relative to the last line on screen
E.g: 3L moves to the line currently to the 2nd line from the bottom of your screen.

 

Search text and line

/search_string
Use / to search forward for ocurrence of string in text

 

/search_string

Use / to search forward for ocurrence of string in text

 

?search_string
Use ? to search backward for ocurrence of string in text

 

n
Move to the next occurrence of search string

 

N
Move to next occurrence of search string in opposite direction

 

:.=
Returns line number of current line at bottom of screen

 

:=
Returns the total number of lines at bottom of screen

 

Ctrl + g
Provides the current line number, along with the total number of lines, in the file at the bottom of the screen

 

Text handle

Each of these commands puts the vi editor into insert mode; thus, the key must be pressed to terminate the entry of text and to put the vi editor back into command mode. i
Insert text before cursor, until hit

 

i

Insert text before cursor, until hit

 

 

I
Insert text at beginning of current line, until hit

 

 

a
Append text after cursor, until hit

 

A
Append text to end of current line, until hit

 

o
Open and put text in a new line below current line, until hit

 

O
Open and put text in a new line above current line, until hit

 

x
Delete single character under cursor. If you type a number before x, it will delete that number of characters starting with character under the cursor

 

dw
Delete the single word beginning with character under cursor. dNw (N is a number), this will delete N words beginning with character under cursor;
E.g, d5w deletes 5 words

 

D
Delete the remainder of the line, starting with current cursor position

 

dd
Delete entire current line. Ndd (N is a number), this will delete N lines, beginning with the current line;
E.g., 5dd deletes 5 lines

 

If you copy from other file in you local PC it will be easy just copy Ctrl + c then in vi edit mode Shift + Insert or just click Right Mouse

If you want to copy text from other file in your server. Please follow this step:

Copy in Command mode

  • Type
  • Move the cursor to the line that needs to be copied and type or , if you need to copy 2 lines just type or
  • If you want to copy all lines from the current line to the end of the file, just move cursor to the first line which needs to be copied and type
  • If you only want to copy one word, just move cursor to very first of the word then type
  • If you only want to copy from current cursor to the end of the line, just type
  • After copied, quit the file with :q

Paste in command mode

  • Move cursor to the start pasting point, type

I hope this helps. Kind regards.

 


VI – Visual Editor – der Standard UNIX Editor


Der Linux/Unix standard Editor VI

VI (ausgesprochen: wie-ei) ist einer der ältesten Editoren unter UNIX bzw. Linux. Auch wenn es heutzutage per GUI einfachere und intuitiv zu bedienende „Luxus“-Editoren gibt, sind grundlegende Kenntnisse von VI ein großer Vorteil, vor allem dann, wenn man per PUTTY oder SSH nur einen remote Zugriff auf ein Linux/UNIX System hat oder das System einfach von einer Shell aus administrieren möchte.

VI entstand 1976, stammt also aus der Zeit der „Dumb Terminals“, der dummen, seriellen Konsolen. Diese waren langsam und erlaubten gerade mal einfache Cursor-Positionierungen auf dem Bildschirm. Popup-Menüs und Maussteuerung waren darauf ausgeschlossen bzw. unbekannt. VI wurde für diese einfachen Bildschirm-Konsolen geschrieben. Seine Bedienung und sein Komfort orientieren sich daran und sind entsprechend einfach gehalten, aber letztendlich genial.
Der wesentliche Vorteil von VI ist, dass er auf fast jedem Linux/UNIX System anzutreffen ist. Dabei ist es nicht mal immer VI sondern oft ist vi nur ein Link auf einen seiner Clones, wie z.B Elvis oder VIM (VI-iMproved).
Der Lernaufwand lohnt sich für jeden User, der sich oft bzw. gern auf der Shell bewegt.

In VI gibt es 3 verschiedene Modi

Die Unterscheidung dieser drei Modi ist das „Hauptproblem“ für den VI-Neuling. Hat er das einmal begriffen, läßt sich der Rest leichter verstehen/erlernen.

Diese Modi sind:

  1. Editiermodus: Mittels Editiermodus bewegt man sich durch den Text bzw. die Datei und führt Textkorrekturen aus.
    In diesen Mode geht VI, wenn er gestartet wird.
  2. Eingabemodus: in diesem Mode wird der Text eingegeben bzw. erfasst
  3. der „Last Line“ – Kommandozeilen Modus: Zum Speichern, Beenden und komplexere Funktionen z.B. Suchen und Ersetzen

Wechsel zwischen den Modi

Input-Mode — [ESC] —> Edit-Mode — : –> Last-Line-Mode
Input-Mode <– i oder a — Edit-Mode <– [RETURN] — Last-Line

Beim Aufruf von

wird die Datei test.txt (sofern vorhanden) geöffnet und VI geht in den Edit-Mode.
Durch Eingeben von

wird in den Kommandozeilen-Mode gewechselt VI beendet.
Im Edit-Mode werden die eingebenen Zeichen als Steuerzeichen interpretiert. Um Text schreiben zu können, muss man zunächst mittels i oder a in den Input-Mode wechseln. Im Input-Mode werden alle Zeichen als Text erfasst. Durch Dücken der Escape-Taste wird der Input-Mode beendet und man befindet sich wieder im Edit-Modus.

VI ist ein sehr mächtiger Editor mit ca. 200 Funktionen. Viele Tasten sind mehrfach belegt. So unterscheidet VI z.B. zwischen (Klein) o = Einfügen einer Zeile nach der aktuellen Zeile und (Groß) O = Einfügen vor aktueller Zeile. VI stammt eben aus der Zeit, als es kaum Alternativen zum Erstellen von Programm-Code gab. Heute verwendet man dazu meist Editoren auf der GUI wie z.B. Kate oder Geany, die auch syntaktische Prüfungen durchführen können oder die Code-Syntax farblich darstellen. VI ist und bleibt für die Shell der standard Editor.

Auch der Linux Page Reader „less“) verwendet die Syntax der VI-Kommandos. Hier kann man sich mit VI-Kenntnissen leichter bewegen und Textstellen suchen.

VI – die Grundfunktionen

Für das „Gelegenheits-Editieren“ z.B. zur Administration von Rechnern kommt man mit nachfolgenden, wenigen VI-Funktionen ganz gut aus.

Funktionen zum Speichern und Beenden von VI sind „Last Line“-Kommandos

Taste

Funktion

: Doppelpunkt im Edit Fenster startet den Last-Line-Mode
q Quit VI verlassen
q! Quit VI ohne Speichern verlassen/Verlassen erzwingen
w Write Datei speichern
wq Write & Quit Zusammenhängen von w und q
/muster suche suche nach muster vorwärts
?muster suche suche nach muster rückwärts
n next wiederhole letzte Suche

VI prüft vor dem Beenden, ob der Text verändert wurde und gibt eine entsprechende Warnung aus. Hat man eine Datei ohne Schreibberechtigung aufgerufen, oder möchte man die Änderungen verwerfen ohne zu speichern, so muss VI mit

verlassen werden. Anderenfalls läßt sich VI nur nach vorherigem Speichern mit q beenden. Eine Alternative für

ist die Eingabe von

.

Bewegen und Löschen im Edit-Modus
Bei den meisten Linux Systeme funktioniern die Cursor-Steuertasten einwandfrei. Falls das mal nicht der Fall sein sollte, kann man sich auch anders durch den Text bewegen.

Funktion

Zeichen

Wort

Zeile

Datei

vorwärts l w j L
rückwärts h b k H
löschen x dw dd

 

Taste

Funktion

0 NULL Gehe zum Zeilenanfang
$ Zeilenende gehe ans Ende der Zeile
H Home gehe zum Anfang der Datei
L Last gehe zum Ende der Datei
12G Goto gehe zu Zeile 12 der Datei (ohne Zahl = letzte Zeile)

Wechsel in den Input Mode:

Taste

Funktion

i insert Text vor dem Cursor einfügen
I Insert Text am Zeilenanfang einfügen
a append Text nach dem Cursor einfügen
A Append Text am Zeilenende anhängen
o open Leerzeile/Text nach aktueller Zeile einfügen
O Open Leerzeile/Text vor aktueller Zeile einfügen

Im Input-Mode werden Zeichen eingefügt (nicht überschrieben). Der Input-Mode wird mit Escape verlassen. Falls die Cursor-Tasten nicht oder schlecht implementiert sind, lösen sie u.U. Escape-Sequenzen aus, die VI veranlassen den Input-Mode zu beenden.
Spezielle Funktionen:

Taste

Funktion

. wiederholt letztes Änderungskommando
u undo macht die letzte Änderung rückgängig
x x-en Zeichen löschen (aus-X-en von Text)
rn replace Ersetzt aktuelles Zeichen mit Zeichen n
xp tauscht aktuelles mit nachfolgendem Zeichen
J Join hängt die nächste an die aktuelle Zeile an
löscht [Return] der aktuellen Zeile

Fast alle VI Funktionen können durch Voranstellen einer Zahl mehrfach ausgeführt werden. So löscht beispielsweise

zwölf Zeilen ab der aktuellen Zeile.

Mit den oben aufgeführten Funktionen und dem Verständnis der drei Modi von VI lässt sich VI schon recht gut bedienen und produktiv einsetzen.

VI – mehr Funktionen

Wer mehr als nur gelegentlich mal eine Config-Datei editieren möchte, wird zusätzliche Funktionen benötigen: wie. z.B. Cut’n’Paste, suchen + ersetzen und Text überschreiben.
Die nachfolgenden Tabellen erheben keinen Anspruch auf Vollständigkeit. Sie sind entsprechend in „Funktionsgruppen“ gegliedert. Fast alle VI-Kommandos können durch voranstellen einer Zahl entsprechend häufig ausgeführt werden. So ersetzt beispielsweise

ab dem Cursor 15 Zeichen durch „x“ oder

dreht bei den nächsten 20 Buchstaben die Groß- Kleinschreibung um.

Yank und Put

Cut and Paste heißt in der VI-Sprache Yank und Put. Wobei das nicht ganz stimmt, den yank ist ein Copy-Befehl. Durch

wird die aktuelle Zeile in den allgemeinen Puffer geschrieben.

für Put fügt den Puffer hinter der aktuellen Zeile ein. Das oben schon beschriebene

Delete funktioniert ähnlich wie Yank, mit dem Unterschied, dass

die entsprechende Anzahl Zeilen, nach dem Kopieren in den allgemeinen Puffer, löscht. Somit kann man die mit

gelöschte(n) Zeile(n) an anderer Stelle im Text per

wieder einfügen.

Neben dem allgemeinen Pufffer kennt VI 35 weitere „benannte“ Puffer. 26 davon sind über die Buchstaben a…z und 9 über die Ziffern 1…9 zu adressieren. Diese werden über

adressiert, wobei x der Buchstabe oder die Ziffer des Puffes ist und die Option n die Anzahl der zu kopierenden Zeilen ist. Ein vorangestelltes doppeltes Anführungszeichen teilt VI also mit, dass man einen benannten Puffer adressieren möchte.

Delete, Yank und Put in der Übersicht:

Taste

Funktion

x löscht aktuelles Zeichen
X löscht Zeichen vor Cursor
dw löscht Wort
dd löscht Zeile
d$ löscht bis zum Ende der Zeile (alt: D)
d/muster löscht bis muster
„add löscht Zeile und speichert sie in Puffer a
yw kopiert Wort
yy kopiert Zeile
y$ kopiert bis zum Ende der Zeile
„ayy kopiert Zeile in Puffer a
p fügt allg. Puffer hinter aktueller Zeile ein
P fügt allg. Puffer vor aktueller Zeile ein
„ap fügt Puffer a hinter aktueller Zeile ein
:r datei fügt datei zwischen aktueller und nächster Zeile ein

Aus der Tabelle kann man sehr schön erkennen, dass sich Funktionen in VI häufig aus anderen Funktionen zusammensetzen. So ist beispielsweise die Funktion

zum Tauschen zweier hintereinanderliegender Buchstaben um z.B. aus einem „ie“ ein „ei“ zu machen, nichts anderes als die Funktion

(Löschen eines Zeichens) gefolgt von

(Einfügen hinter Cursor).

Suchen und Ersetzen

Suchen und Ersetzen wird im VI über „Last-Line“ oder Doppelpunkt Kommandos durchgeführt. Das einfache Vor- und Rückwärtssuchen ist weiter oben schon aufgeführt. Delete, Yank und Put in der Übersicht:

Suchen:

Eingabe

Funktion

/muster sucht muster in Datei vorwärts
/muster/n sucht n-tes muster in Datei vorwärts
/muster/+n positioniere Cursor in n-te Zeile hinter muster
/muster/-n positioniere Cursor in n-te Zeile vor muster
?muster sucht muster in Datei rückwärts
n wiederholt letzte Suche
N wiederholt letzte Suche in umgekehrter Richtung

Suchen und Ersetzen:

Eingabe

Funktion

s/alt/neu ersetzt 1. Vorkommen in aktueller Zeile von alt durch neu
s/alt/neu/g ersetzt alle Vorkommen in aktueller Zeile von alt durch neu
1,10s/alt/neu/g ersetzt alle Vorkommen in Zeilen 1 bis 10 von alt durch neu
1,$s/alt/neu/gc ersetzt alle Vorkommen in Datei von alt durch neu
inkl. Rückfrage. Diese muss mit y oder n beantwortet werden

In einem gut installierten VIM kann man, ähnlich wie bei der Bash, mittels Up- & Down-Cursor-Tasten durch die letzen Kommandos blättern und diese ggf. editieren und wiederholen.

Eingeben/Ändern mit Wechsel in den Input Mode:

Taste

Funktion

a append Rechts vom Cursor einfügen
A Append Am Zeilenende anhängen
i insert Links vom Cursor einfügen
I Insert Am zeielanfang einfügen
o open öffnet neue, leere Zeile nach aktueller Zeile
O Open öffnet neue, leere Zeile vor aktueller Zeile
s substitue löscht aktuelles Zeichen und geht in Input-Mode
S Substitute löscht aktuelle Zeile und geht in Input-Mode
R Replace Überschreiben einschalten
cw change word Wort löschen und in den Input Mode wechseln
cc change wie S – ganze Zeile ersetzen
c$ Change ab Cursor den Rest der Zeile ersetzen
C Change wie c$ – ab Cursor den Rest der Zeile ersetzen

 

Ersetzungen/Änderungen ohne Wechsel in den Input Mode:

Taste

Funktion

x aus-X-en Zeichen unter Cursor löschen
rx replace Zeichen unter Cursor durch x ersetzen
~ Case change Wechsel von Groß- in Kleinbuchstaben und umgekehrt
J Join Zeilen verbinden
. letztes Änderungskommando wiederholen
u undo letzte Änderung rückgängig machen
:e! alle Änderungen seit dem letzten Speichern verwerfen

VI – Kommandozeilen Parameter

Beim Aufrufen von VI bzw VIM lassen sich einige Parameter gleich mit übergeben. Dies ist keine komplette Übersicht aller Möglichkeiten. Die Beispeile sollen proimär als Anregungen dienen:

Eingabe

Funktion

vi „+12“ test.txt öffnet die Datei test.txt und positioniert Cursor auf Zeile 12
vi „+12“ test.txt „+:4sp“ öffnet die Datei test.txt in zwei Fenstern, wovon das obere 4 Zeilen hoch ist, den Fokus erhält und auf Zeile 12 positioniert wird.
Wird :sp ohne Zahl angegeben, so werden zwei gleich große Fenster geöffnet.
vi „+:6sp test.dat“ test.txt Öffnet zwei Fenster, das obere ist 6 Zeilen hoch, hat den Fokus und enthält die Datei test.dat. Das untere enthält die Datei test.txt.
vi „+’\““ test.txt öffnet test.txt und geht zu der Zeile, in der der Cursor beim letzten Editieren stand.
kann man auch als Alias definieren:
vi „+syntax on“ „+set number“ s.c schaltet beim Öffnen der Datei das Syntax Coloring und die Zeilennummerierung ein

Parameter, die man bei jedem Aufruf von VI verwenden möchte, wie z.B. set number sollte man in die Datei .vimrc im Home Verzeichnis des Users eintragen.

Arbeitet man mit zwei Fenstern gleichzeitig, kann man mit [Strg][w][w] zwischen den beiden Fenstern springen. Beide Fenster kann man durch :qa bzw. :wqa ohne bzw. mit Speichern schließen.

 

VI und LESS

Wenn man sich mit VI auskennt, kann man auch das Linux-Anzeige Programm less deutlich besser nutzen. Die Funktionen zum Suchen und Positionieren innerhalb der Datei sind identisch.

Mehrnoch! Haben Sie gerade eine Datei mit less zum Anschauen geöffnet und sehen, dass Sie diese editieren möchten, reicht die Eingabe von „v“ um die Datei mit dem Editor zu öffnen.
Hier kann Ihnen Ubuntu einen kleinen Streich spielen. Standardmäßig ist in Ubuntu Nano als Editor definiert und wenn man mit VI bzw. Vim fitt ist, empfindet man dies eher als störend. Um Abhilfe zu schaffen, rufen Sie

auf:

Falls das nicht funktioniert, können Sie den Link auch manuell ändern: Wechseln Sie dazu als Root nach /etc/alternatives und löschen Sie dort die Links „editor“ und „editor.1.gz“. Anschließend legen Sie dort neue Links auf Vim an:

Ich verwende VIM, weil darin die Tastatur-Adaption der Cursor- und Steuertasten besser definiert ist als im Basis VI.

 

Cursor movement [+/-] Command Mode

  • — move left
  • — move down
  • — move up
  • — move right
  • — jump by start of words
  • — jump by words
  • — jump to end of words
  • — jump to end of words
  • — jump backward by words
  • — jump backward by words
  • — (zero) start of line
  • — first non-blank character of line
  • — end of line
  • — Go To command (5G goes to line 5)

Notes

  • Prefix a cursor movement command with a number to repeat it. For example, 4j moves down 4 lines.
  • Capital letters skip punctuation.
  • Spaces separate words.

Inserting/Appending [+/-] Insert Mode

  • — start insert mode at cursor
  • — insert at the beginning of the line
  • — append after the cursor
  • — append at the end of the line
  • — open (append) blank line below current line (no need to press return)
  • — open blank line above current line
  • — append at end of word
  • — exit insert mode

Cut and Paste [+/-] Command Mode

  • — yank (copy) a line
  • — yank 2 lines
  • — yank word
  • — yank to end of line
  • — put (paste) the clipboard after cursor
  • — put (paste) before cursor
  • — delete (cut) a line
  • — delete (cut) the current word
  • — delete (cut) current character

Search/Replace [+/-] Command Mode

  • — search for pattern
  • — search backward for pattern
  • — repeat search in same direction
  • — repeat search in opposite direction
  • — replace all old with new throughout file
  • — replace all old with new throughout file with confirmations

Editing [+/-] Command Mode

  • — replace a single character (does not use insert mode)
  • — join line below to the current one
  • — change (replace) an entire line
  • — change (replace) to the end of word
  • — change (replace) to the end of line
  • — delete character at cursor and subsitute text
  • — delete line at cursor and substitute text (same as cc)
  • — transpose two letters (delete and paste, technically)
  • — undo
  • — repeat last command

Exiting [+/-] Command Mode

  • — write (save) the file, but don’t exit
  • — write (save) and quit
  • — quit (fails if anything has changed)
  • — quit and throw away changes

Marking Text [+/-] Visual Mode

  • — start visual mode, mark lines, then do command (such as y-yank)
  • — start Linewise visual mode
  • — move to other end of marked area
  • — start visual block mode
  • — move to Other corner of block
  • — mark a word
  • — a () block (with braces)
  • — a {} block (with brackets)
  • — inner () block
  • — inner {} block
  • — exit visual mode

Visual commands [+/-] Visual Mode

  • — shift right
  • — shift left
  • — yank (copy) marked text
  • — delete marked text
  • — switch case

Working with multiple files [+/-] Command Mode

  • — Edit a file in a new buffer
  • — go to next buffer
  • — go to previous buffer
  • — delete a buffer (close a file)
  • — Open a file in a new buffer and split window
  • — Split windows
  • — switch between windows
  • — Quit a window
  • — Split windows vertically