vim Tutorial
Erste Schritte mit vim
Suche…
Bemerkungen
Vim (oder "Vi IMproved") ist ein konsolenbasierter Multi-Mode-Texteditor ( modal ). Es ist weit verbreitet und standardmäßig auf allen Unix-, Linux- und Apple OS X-Systemen verfügbar. Vim hat eine große aktive Community und eine breite Benutzerbasis. Der Editor unterstützt alle gängigen Programmiersprachen. Viele Plugins sind verfügbar, um die Funktionen zu erweitern.
Entwickler schätzen den Editor aufgrund seiner Geschwindigkeit, seiner vielen Konfigurationsoptionen und der ausdrucksstarken Bearbeitung. Im Befehlsmodus wird der Editor durch Tastaturbefehle gesteuert, sodass der Benutzer nicht durch eine GUI oder einen Mauszeiger abgelenkt wird.
Vim basiert auf dem früheren Unix-Editor "vi", der in den siebziger Jahren erstellt wurde, und wird seit 1991 kontinuierlich weiterentwickelt. Mit Makros und Plugins bietet der Editor die meisten Funktionen einer modernen IDE. Mit seiner Skriptsprache (Vimscript) und regulären Ausdrücken ist es auch in der Lage, große Textmengen zu verarbeiten.
Hauptthemen:
- Installation
- Bearbeitungsmodi
- Navigation
- grundlegende Bearbeitung
- Erweiterte Bearbeitung
- Aufbau
- Plugins
- vimscript
- Makros
- Gemeinschaft
- Ähnliche Projekte
Versionen
Ausführung | Veröffentlichungsdatum |
---|---|
8,0 | 2016-09-12 |
7.4 | 2013-08-10 |
7.3 | 2010-08-15 |
7.2 | 2008-08-09 |
7.1 | 2007-05-12 |
7,0 | 2006-05-07 |
6,0 | 2001-09-26 |
5,0 | 1998-02-19 |
4,0 | 1996-05-29 |
3,0 | 1994-08-12 |
2,0 | 1993-12-14 |
1.14 | 1991-11-02 |
Installation
Das Vim auf Ihrem Computer ist - sofern vorhanden - sehr wahrscheinlich ein "kleiner" Build, dem nützliche Funktionen wie Unterstützung der Zwischenablage, Syntaxhervorhebung oder sogar die Verwendung von Plugins fehlen.
Dies ist kein Problem, wenn Sie nur eine schnelle Methode zum Bearbeiten von Konfigurationsdateien benötigen. Wenn Sie jedoch Vim zu Ihrem Haupteditor machen möchten, werden Sie bald eine Reihe von Wänden treffen.
Es wird daher generell empfohlen, einen vollständigen Build zu installieren.
Installation unter Linux / BSD
Auf diesen Systemen besteht der Trick darin, die GUI-Version zu installieren, die sowohl einen gvim
Befehl zum Starten der GUI als auch einen vim
Befehl zum Starten der TUI enthält.
Arch- und Arch-basierte Distributionen
$ sudo pacman -R vim
$ sudo pacman -S gvim
Debian- und Debian-basierte Distributionen
$ sudo apt-get update
$ sudo apt-get install vim-gtk
Gentoo- und Gentoo-basierte Distributionen
$ sudo emerge --sync
$ sudo emerge app-editors/gvim
RedHat- und RedHat-basierte Distributionen
$ sudo yum check-update
$ sudo yum install vim-X11
Fedora
$ sudo dnf check-update
$ sudo dnf install vim-X11
Slackware- und Slackware-basierte Distributionen
$ sudo slackpkg update
$ sudo slackpkg install-new vim-gvim
OpenBSD- und OpenBSD-basierte Distributionen
$ sudo pkg_add vim-x11
FreeBSD- und FreeBSD-basierte Distributionen
$ sudo pkg install editors/vim
Installation unter Mac OS X
Die Strategie ist ähnlich wie bei Mac OS X: Wir installieren die GUI-Version, um sowohl die GUI als auch die TUI zu erhalten. Am Ende sollten wir in der Lage sein:
- Doppelklicken Sie im Finder auf das MacVim-Symbol.
- Klicken Sie im Dock auf das MacVim-Symbol.
- geben Sie
$ mvim
in der Shell ein, um die MacVim-$ mvim
zu öffnen. -
$ mvim -v
in der Shell$ mvim -v
ein, um die MacVim-TUI zu öffnen.
Regelmäßige Installation
Laden Sie einen offiziellen Snapshot herunter und installieren Sie ihn wie mit jeder anderen Mac OS X-Anwendung.
Platzieren Sie das mit MacVim mitgelieferte mvim
Skript irgendwo in Ihrem $PATH
.
Paket-Manager
MacPorts:$ sudo port selfupdate
$ sudo port install macvim
Homebrew: $ brew install macvim
So machen Sie MacVim zur Standardkonsole Vim:
$ brew install macvim --with-override-system-vim
Installation unter Windows
Auf Windows-Systemen ist standardmäßig kein Vim vorhanden. Sie können Vim von der Tuxproject-Site herunterladen und installieren, um aktuellere und vollständige Builds zu erhalten, oder Sie können Vim von der offiziellen Vim-Site herunterladen und installieren.
Schokoladig
> choco install vim
Vim von der Quelle aus bauen
Wenn die oben genannten Methoden nicht Ihre Bedürfnisse ist es noch möglich , Vim selbst zu bauen, nur die Optionen , die Sie benötigen.
Dieses Thema wird in einem eigenen Abschnitt (derzeit im Entwurf) erörtert.
Vim verlassen
Um Vim zu beenden, zuerst sicherstellen , dass Sie im Normal - Modus sind durch Drücken der Taste Esc.
-
:q
Enter (verhindert das Beenden, wenn Sie nicht gespeicherte Änderungen haben - kurz für: quit)
Änderungen verwerfen und Vim beenden:
-
:q!
Geben Sie ein , um die Änderungen zu:quit!
und zu verwerfen (kurz für:quit!
Nicht zu verwechseln mit:!q
), -
ZQ
ist eine Abkürzung, die dasselbe tut wie:q!
. -
:cq
Geben Sie quit und return error ein (verwerfen Sie alle Änderungen, damit der Compiler diese Datei nicht neu kompiliert).
Änderungen speichern und Vim beenden:
-
:wq
Enter (Abkürzung für:write
und:quit
), -
:x
Eingabe (wie bei:wq
,:wq
aber nicht, wenn die Datei nicht geändert wurde), -
ZZ
ist eine Verknüpfung, die das Gleiche tut wie:x
(Arbeitsbereich speichern und Editor beenden), -
:[range]wq!
Eingabe (schreibe die Zeilen in [Bereich])
Um mehrere Puffer gleichzeitig zu schließen (auch in mehreren Fenstern und / oder Registerkarten), hängen Sie den Buchstaben a
an einen der Befehle oben (die mit :
). Zum Beispiel zum Schreiben und Beenden aller Fenster, die Sie verwenden können:
-
:wqa
Geben Sie oder ein -
:xa
Enter - Schreiben Sie alle geänderten Puffer und beenden Sie Vim. Wenn Puffer ohne Dateinamen vorhanden sind, die nur lesbar sind oder aus einem anderen Grund nicht geschrieben werden können, wird Vim nicht beendet -
:xa!
Enter - Schreiben Sie alle geänderten Puffer, auch die schreibgeschützten, und beenden Sie Vim. Wenn es Puffer gibt, die keinen Dateinamen haben oder aus einem anderen Grund nicht geschrieben werden können, wird Vim nicht beendet -
:qa
Enter - versuchen Sie den Vorgang zu beenden, aber stoppen Sie nicht gespeicherte Dateien. -
:qa!
Enter - ohne Speichern abbrechen (Änderungen in nicht gespeicherten Dateien verwerfen)
Wenn Sie Vim geöffnet haben, ohne eine Datei anzugeben, und diese Datei vor dem Beenden speichern möchten, erhalten Sie die Nachricht E32: No file name
. Sie können Ihre Datei speichern und beenden mit:
-
:wq filename
Enter oder; -
:x filename
eingeben
Erläuterung:
Die: Tastendruck öffnet sich tatsächlich Befehlsmodus. Der Befehl q
ist eine Abkürzung für quit
, w
, von write
und x
, exit
(Sie können auch Folgendes :quit
:write
und :exit
wenn Sie möchten). Verknüpfungen beginnend nicht :
wie ZZ
und ZQ
in den Normalmodus Tastenzuordnungen beziehen. Sie können sich als Abkürzungen vorstellen.
Die !
Der Tastenanschlag wird manchmal am Ende eines Befehls verwendet, um die Ausführung zu erzwingen, wodurch Änderungen verworfen werden können :q!
. Platzieren der !
am Anfang des Befehls hat eine andere Bedeutung. Zum Beispiel kann man falsch eingeben:! :!q
statt :q!
und vim würde mit einem Fehler von 127 enden.
Eine einfache Möglichkeit, sich daran zu erinnern, ist, daran zu denken !
als eine Möglichkeit, darauf zu bestehen, etwas auszuführen. Genau wie beim Schreiben: "Ich möchte aufhören!"
Interaktive Vim-Tutorials (z. B. Vimtutor)
vimtutor
ist ein interaktives Tutorial, das die grundlegendsten Aspekte der Textbearbeitung behandelt.
Auf einem UNIX-ähnlichen System können Sie das Lernprogramm mit folgendem Befehl starten:
$ vimtutor
Unter Windows befindet sich „Vim Tutor“ im Verzeichnis „Vim 7.x“ unter „All Programs“ im Windows-Menü.
Weitere Informationen finden Sie unter :help vimtutor
.
Andere interaktive Tutorials umfassen diese browserbasierten:
- Vim Adventures - Eine interaktive Spielversion von vimtutor, die im Internet verfügbar ist. Nur die ersten Stufen sind frei.
- Open Vim - Ein interaktives Terminal, das Ihnen die grundlegenden Befehle mit Feedback vermittelt.
- Vim Genius - Ein weiteres interaktives Terminal, das auch fortgeschrittene und fortgeschrittene Lektionen einschließlich Makros und Arglist beinhaltet.
Speichern einer schreibgeschützten Datei, die in Vim bearbeitet wurde
Manchmal öffnen wir möglicherweise eine Datei, für die wir keine Berechtigung zum Schreiben in Vim haben, ohne sudo
.
Verwenden Sie diesen Befehl, um eine schreibgeschützte Datei zu speichern, die in Vim bearbeitet wurde.
:w !sudo tee > /dev/null %
Welches Sie zuordnen könnten :w!!
in deiner .vimrc
:
cmap w!! w !sudo tee > /dev/null %
Es wird eine Aufforderung angezeigt, wie im Bild gezeigt.
Drücken Sie O
und die Datei wird gespeichert. In vi / vim bleibt es für weitere Bearbeitungen oder zum Lesen geöffnet. Sie können das Programm normalerweise beenden, indem Sie Folgendes eingeben :q!
da die Datei noch schreibgeschützt ist.
Befehlserklärung
:w ............................ isn't modifying your file in this case,
............................ but sends the current buffer contents to
............................ a substituted shell command
!sudo ...................... call the shell 'sudo' command
tee .................. the output of the vi/vim write command is redirected
using the 'tee' command
> /dev/null ...... throws away the standard output, since we don't need
to pass it to other commands
% .... expands to the path of the current file
Quellen:
Vim aussetzen
Wenn Sie vim
von der Befehlszeile aus verwenden, können Sie vim
aussetzen und zu Ihrer Eingabeaufforderung zurückkehren, ohne vim
tatsächlich zu beenden. Daher können Sie Ihre vim
Sitzung später von derselben Eingabeaufforderung abrufen.
Im Normalmodus (wenn nicht, drücken Sie esc , um dorthin zu gelangen), geben Sie einen der folgenden Befehle aus:
:st
eingeben
:sus
eintreten
:stop
enter
:suspend
Enter:suspend
Alternativ auf einigen Systemen, wenn im normalen oder visuellen Modus, Ausgabe Strg + Z die gleiche Wirkung hat.
Hinweis: Wenn autowrite
eingestellt ist, werden Puffer mit Änderungen und Dateinamen ausgeschrieben. Fügen Sie ein !
vor eingeben , um zu vermeiden, z. :st!
eintreten
Wenn Sie später zu Ihrer vim
Sitzung zurückkehren möchten, wenn Sie keine anderen Jobs angehalten haben, wird durch das Ausgeben der folgenden Informationen vim als Vordergrundjob wiederhergestellt.
fg
eingeben
Andernfalls müssen Sie die Job-ID Ihrer vim
Sessions finden, indem Sie jobs
eingeben und dann die entsprechenden Jobs in den Vordergrund legen. fg %[job ID]
eingeben, z. fg %1
eingeben .
Grundlagen
Führen Sie interaktive vim-Tutorials so oft aus, wie Sie es benötigen, um sich mit den Grundlagen vertraut zu machen.
Vim bietet verschiedene Modi, z. B. Normalmodus , Einfügemodus und Befehlszeilenmodus .
Im Normalmodus können Sie Text bearbeiten und navigieren. In diesem Modus entsprechen h
, j
, k
und l
den Cursortasten ←
, ↓
, ↑
und →
. Den meisten Befehlen im Normalmodus kann ein "count" vorangestellt werden, z. B. 3j
fährt 3 Zeilen nach unten.
Der Einfügemodus dient zum direkten Einfügen des Textes. In diesem Modus ähnelt vim anderen einfacheren Texteditoren. Um den Einfügemodus zu aktivieren, drücken Sie i
im normalen Modus. Zum Verlassen drücken Sie <ESC>
(Escape-Taste).
Im Befehlszeilenmodus können komplexere Befehle ausgeführt werden, beispielsweise das Speichern der Datei und das Beenden von vim. Drücken Sie :
um den Befehlszeilenmodus zu starten. Um diesen Modus zu verlassen, können Sie auch <ESC>
drücken. Um die Änderungen an der Datei zu speichern, verwenden Sie :w
(oder :write
). Um vim zu verlassen, ohne die Änderungen zu speichern, verwenden Sie :q!
(oder :quit!
).
Dies sind einige der nützlicheren Befehle in vim:
Befehl | Beschreibung |
---|---|
i | (Einfügen) wechselt in den Einfügemodus vor der aktuellen Cursorposition |
I | wechselt in den Einfügemodus vor dem ersten druckbaren Zeichen der aktuellen Zeile |
a | (Anfügen) wechselt nach der aktuellen Cursorposition in den Einfügemodus |
A | wechselt in den Einfügemodus nach dem letzten druckbaren Zeichen der aktuellen Zeile |
x | Zeichen an der aktuellen Cursorposition löschen |
X | Zeichen links an der aktuellen Cursorposition löschen |
w | zum nächsten Wort wechseln |
b | zum vorherigen Wort wechseln |
0 | zum Zeilenanfang gehen |
$ | zum Ende der Zeile gehen |
r | Ersetzen - Ruft den Ersetzungsmodus für ein Zeichen auf. Das nächste Zeichen, das Sie eingeben, wird das Zeichen unter dem Cursor ersetzen. |
R | wechselt unbegrenzt in den Ersetzungsmodus. Jedes Zeichen, das Sie eingeben, wird das Zeichen unter dem Cursor ersetzen und den Cursor um eins vorrücken. |
s | Ersatz - löscht das Zeichen an der aktuellen Cursorposition und wechselt dann in den Einfügemodus |
S | Löschen Sie die aktuelle Zeile, in der sich der Cursor gerade befindet, und wechseln Sie in den Einfügemodus |
<Esc> , <Cc> | Beenden Sie den Einfügemodus und kehren Sie zum Normalmodus zurück |
u | rückgängig machen |
<Cr> | Wiederholen |
dd , dw , dl , d$ | Schneiden Sie die aktuelle Zeile vom Cursor zum nächsten Wort oder das Zeichen, die aktuelle Position bis zum Ende der aktuellen Zeile. Hinweis: D ist das Äquivalent von d$ |
cc , cw , cl | wechselt die aktuelle Zeile vom Cursor zum nächsten Wort bzw. zum Zeichen |
yy , yw , yl , y$ | yank ("copy") die aktuelle Zeile, vom Cursor zum nächsten Wort oder das Zeichen, die aktuelle Position bis zum Ende der aktuellen Zeile |
p , P | Put ("Einfügen") nach bzw. vor der aktuellen Position |
o , O | um eine neue leere Zeile nach oder vor der aktuellen zu erstellen und den Einfügemodus zu aktivieren |
:w | schreibe den aktuellen Puffer auf die Festplatte |
:q! , ZQ | Beenden ohne zu schreiben |
:x :wq , ZZ | schreiben und beenden |
:help | Öffnet ein Fenster mit Hilfedatei |
:help {subject} | Hilfe zu einem bestimmten Thema anzeigen |
qz | Beginnen Sie mit den Aufzeichnungsaktionen, um z zu registrieren, q , um die Aufnahme zu beenden, und @z , um die Aktionen @z . z kann ein beliebiger Buchstabe sein: q wird häufig aus Gründen der Übersichtlichkeit verwendet. Lesen Sie mehr: Makros |
Was tun im Falle eines Absturzes?
Vim speichert alle nicht gespeicherten Änderungen in einer Auslagerungsdatei , einer zusätzlichen Datei, die gelöscht wird, sobald die Änderungen durch Speichern übernommen werden. Der Name der Auslagerungsdatei ist normalerweise der Name der zu bearbeitenden Datei, vorangestellt von einem .
und mit einem .swp
Suffix (Sie können es mit :sw
).
Falls Ihr vim-Prozess beendet wird, bevor Sie die Änderungen speichern konnten, können Sie Ihre Arbeit wiederherstellen, indem Sie die in der Auslagerungsdatei enthaltenen Änderungen auf Ihre aktuelle Datei anwenden, indem Sie die Befehlszeilenoption -r
. Wenn beispielsweise myFile
die Datei ist, die Sie bearbeitet haben, verwenden Sie myFile
:
$ vi -r myFile
um die nicht festgeschriebenen Änderungen wiederherzustellen.
Wenn eine Auslagerungsdatei vorhanden ist, sollten Sie von vim trotzdem zur Eingabe von Wiederherstellungsoptionen aufgefordert werden
$ vi myFile
E325: ATTENTION
Found a swap file by the name ".myFile.swp"
...
Swap file ".myFile.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
Wenn Sie (R) ecover wählen, werden die Änderungen aus der swp
Datei übernommen, die Auslagerungsdatei wird jedoch nicht gelöscht. Vergessen Sie nicht, die Auslagerungsdatei anschließend zu löschen, wenn Sie mit der Wiederherstellung zufrieden sind.