Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Vim Tastenbelegung tabellarisch

Tipp Linux Linux Tools

Mitglied: hmarkus

hmarkus (Level 2) - Jetzt verbinden

21.08.2013, aktualisiert 31.08.2013, 6951 Aufrufe, 11 Kommentare, 11 Danke

Alle Befehle in der Reihenfolge der deutschen Tastatur. Erklärungen in deutscher Sprache.

Die folgende Tabelle ist eher durch Zufall entstanden. Ich wollte mal ausprobieren, ob ich die meisten Vim/Vi Befehle kenne oder eher doch nicht. Deshalb hab ich sie der Reihe nach ausprobiert. Jetzt wo die Tabelle fertig ist, muss sie ja nicht nutzlos auf meinem Rechner liegen. Hier ist sie.


Nach Tastenfolge

Von links nach rechts zeilenweise (deutsches Tastaturlayout).
Taste Befehl
ESC normal mode
^ gehe zum ersten Zeichen der aktuellen Zeile
~ Groß/Kleinschreibung umkehren (aktuelles Zeichen
! externen Befehl ausführen
". nächsten lösch oder yank Befehl speichere nach Puffer .
". Puffer . füge mit p wieder ein
$ gehe zum Zeilenende
% gehe zur matchenden Klammer
& wiederhole die letzte Ersetzung (:s/...)
/string suche vorwärts
* suche das nächste Vorkommen des aktuellen Wortes
{ gehe zum Beginn des aktuellen Absatzes
( gehe zum Beginn des aktuellen Satzes
) gehe zum Ende des aktuellen Satzes
0 gehe zum Anfang der Zeile
} gehe zum Ende des aktuellen Absatzes
?string suche rückwärts (string)
q. Makro aufzeichnen
q Makroaufzeichnung wieder stoppen
Q ex mode
@. Makro . abspielen
w nächstes wort (erkennt alle Nichtbuchstaben als Trenner)
W nächstes Wort (erkennt nur Whitespace als Trenner)
e Ende des worte (erkennt alle Nichtbuchstaben als Trenner)
E Ende des Wortes (erkennt nur Whitespace als Trenner)
r. ersetze mit .
R Ersetzungsmodus (spring weiter zum nächsten Zeichen)
t. vorwärts bis vor .
T. rückwärts bis hinter .
ZZ Verlassen (mit speichern)
zt scrolle aktuelle Zeile zur oberen Fensterkannte
zb scrolle aktuelle Zeile zur unteren Fensterkannte
zz scrolle aktuelle Zeile in die Fenstermitte
u rückgängig
U ganze Zeile wieder herstellen
i Einfügemodus
I Füge am Beginn der aktuellen Zeile ein
o einfügen in neue Zeile unterhalb
O einfügen in neue Zeile oberhalb
p Puffer hinter Cursor einfügen
P Puffer vor Cursor einfügen
a anfügen
A Anfügen am Zeilenende
s ersetze ab aktuellem Zeichen
S ersetze die aktuelle Zeile
d... lösche...
dd lösche die aktuelle Zeile
D lösche bis zum Zeilenende
f suche vorwärts nach Zeichen in dieser Zeile
F suche rückwärts nach Zeichen in dieser Zeile
gg gehe zum Dateianfang
gf öffne Datei(name) unter Cursor
G gehe zum Dateiende
Zahl G gehe zur Zeile "Zahl"
h ein Zeichen nach links
H gehe zur Fensteroberkante
j eine Zeile nach unten
J füge die aktuelle und die nächste Zeile zusammen
k eine Zeile nach oben
K Hilfe zum aktuellen Wort
l ein Zeichen nach rechts
L gehe zur Fensterunterkante
# suche weitere Vorkommen des aktuellen Wortes
< Einrückung rückgängig machen
> einrücken
y... speichere ... im Puffer
Y speichere ganze Zeile im Puffer
x lösche Zeichen unter dem Cursor
X Backspace
c... ändere...
C ändere bis zum Zeilenende
v Visual Mode einschalten
V Visual Mode zeilenweise
b gehe zum Beginn es vorigen Wortes
B gehe zum Beginn es vorigen Wortes (nur alphanumerisch)
n suche weiter vorwärts
N suche weiter rückwärts
m. Marke . setzen
M Cursor an den Anfang der mittleren Bildschirmzeile
, Umkehrung von f, F, t, T
; nach f oder F weitersuchen
. letzten Befehl wiederholen
: ex Kommando Modus

Thematisch


Modus wechseln

ESC normal mode
Q ex mode
i Einfügemodus
I Füge am Beginn der aktuellen Zeile ein
o einfügen in neue Zeile unterhalb
O einfügen in neue Zeile oberhalb
a anfügen
A Anfügen am Zeilenende
v Visual Mode einschalten
V Visual Mode zeilenweise
: ex Kommando Modus

Cursorbewegung

^ gehe zum ersten Zeichen der aktuellen Zeile
$ gehe zum Zeilenend e
% gehe zur matchenden Klammer
{ gehe zum Beginn des aktuellen Absatzes
( gehe zum Beginn des aktuellen Satzes
) gehe zum Ende des aktuellen Satzes
0 gehe zum Anfang der Zeile
} gehe zum Ende des aktuellen Absatzes
w nächstes wort (erkennt alle Nichtbuchstaben als Trenner)
W nächstes Wort (erkennt nur Whitespace als Trenner)
e Ende des worte (erkennt alle Nichtbuchstaben als Trenner)
E Ende des Wortes (erkennt nur Whitespace als Trenner)
t. vorwärts bis vor .
T. rückwärts bis hinter .
zt scrolle aktuelle Zeile zur oberen Fensterkannte
zb scrolle aktuelle Zeile zur unteren Fensterkannte
zz scrolle aktuelle Zeile in die Fenstermitte
gg gehe zum Dateianfang
G gehe zum Dateiende
Zahl G gehe zur Zeile "Zahl"
h ein Zeichen nach links
H gehe zur Fensteroberkante
j eine Zeile nach unten
k eine Zeile nach oben
l ein Zeichen nach rechts
L gehe zur Fensterunterkante
b gehe zum Beginn es vorigen Wortes
B gehe zum Beginn es vorigen Wortes (nur alphanumerisch)
M Cursor an den Anfang der mittleren Bildschirmzeile


Löschen

d... lösche...
D lösche bis zum Zeilenende
x lösche Zeichen unter dem Cursor
X Backspace


Suchen

/string suche vorwärts
?string suche rückwärts (string)
* suche das nächste Vorkommen des aktuellen Wortes
f suche vorwärts nach Zeichen in dieser Zeile
F suche rückwärts nach Zeichen in dieser Zeile
, Umkehrung von f, F, t, T
# suche weitere Vorkommen des aktuellen Wortes
n suche weiter vorwärts
N suche weiter rückwärts
; nach f oder F weitersuchen

Speichern (arbeiten mit Puffern)

". nächsten lösch oder yank Befehl speichere nach Puffer .
". Puffer . füge mit p wieder ein
p Puffer hinter Cursor einfügen
P Puffer vor Cursor einfügen
y... speichere ... im Puffer
Y speichere ganze Zeile im Puffer

Ersetzen

~ Groß/Kleinschreibung umkehren (aktuelles Zeichen)
& wiederhole die letzte Ersetzung (:s/...)
r. ersetze mit
R Ersetzungsmodus (spring weiter zum nächsten Zeichen)
s ersetze ab aktuellem Zeiche
S ersetze die aktuelle Zeile
c... ändere...
C ändere bis zum Zeilenende

Sonstige

! externen Befehl ausführen
q. Makro aufzeichnen
q Makroaufzeichnung wieder stoppen
@. Makro . abspielen
ZZ Verlassen (mit speichern)
u rückgängig
U ganze Zeile wieder herstellen
gf öffne Datei(name) unter Cursor
J füge die aktuelle und die nächste Zeile zusammen
. letzten Befehl wiederholen
K Hilfe zum aktuellen Wort
< Einrückung rückgängig machen
> einrücken
m. Marke . setzen

Erklärungen

  • Bei Zeichen gefolgt von '.' ist mit dem '.' irgendein Zeichen gemeint, also z.B. r. würde rZ bedeuten und meint, dass das Zeichen unter dem Cursor durch ein großes 'Z' ersetzt wird.
  • Zeichen gefolgt von ... meint, dass hier eine Operation auf einem Bereich folgt, Beispiel: c3w bedeutet "ersetze die nächsten drei Wörter".

Die obige Tabelle ersetzt nicht das Lesen der Dokumentation! Ihr könnt auf der Kommandozeile das Programm vimtutor aufrufen, es bietet Euch ein Anfängertutorial. Wenn Ihr die Variable $LANG auf deutsch gesetzt habt (z.B. de_DE.utf8) ist es sogar auf Deutsch.

Hilfreich ist das vi vim Cheat Sheet.

Hinweise auf Fehler bitte hier posten oder per PN, die werde ich dann korrigieren.

Markus
Mitglied: Frank
21.08.2013, aktualisiert 22.08.2013
Hi Markus,

da ich "vim" täglich nutze, eine dickes Lob und vielen Dank

Gruß
Frank
Bitte warten ..
Mitglied: maretz
22.08.2013 um 09:55 Uhr
was ich noch viel nutze ist z.B.

20dd -> lösche von der aktuellen zeile aus diese und die nächsten 20 zeilen (geht natürlich auch mit anderen Nummern…)
Bitte warten ..
Mitglied: hmarkus
22.08.2013 um 20:20 Uhr
Zitat von maretz:
was ich noch viel nutze ist z.B.

20dd -> lösche von der aktuellen zeile aus diese und die nächsten 20 zeilen (geht natürlich auch mit anderen
Nummern…)

Danke für den Hinweis, das dd werde ich in die Tabelle einarbeiten.

Solche Features wie die Tatsache, dass man fast jedem Kommando eine beliebige Zahl als Parameter für die Anzahl der Wiederholungen voranstellen kann, gehören eher in ein Tutorial. Daher der Verweis auf vimtutor, jemand der völlig ungeübt ist, wird mit der Befehlstabelle nichts anfangen können.

Markus
Bitte warten ..
Mitglied: Alchimedes
28.08.2013 um 21:48 Uhr
Hey Markus,


Super Post !!

das vi(m)tutoruial ist fuer den Anfaenger ein Supereinstieg.
Vieleicht waere es in Deinem Post fuer den Einsteiger noch hilfreich welche modi es bei vi(m) gibt und wie man da wieder rauskommt.

Ich weiss unter modus wechseln zu finden....das rafft der Einsteiger aber noch nicht.

Interessant ist ZZ das kannte ich noch nicht.... was ich nutze ist :x! standard hier waere :wq
aber ZZ ist schneller...

So hier mal schnell nen Terminal auf und ab geht es durch die Tastenbelegung.

ist die Befehlszeilenreferenz in allen Terminals gleich also sh, bash,dash(Ubuntu) , ksh , blafasel ?
denn bei denn Kommandozeilenbefehlen wissen wir das es nicht so ist.


Gruss
Bitte warten ..
Mitglied: hmarkus
30.08.2013 um 17:50 Uhr
Hallo Alchimedes,
Zitat von Alchimedes:
.....
Super Post !!
danke, freut mich, dass es Dir gefällt und hilfreich ist.
das vi(m)tutoruial ist fuer den Anfaenger ein Supereinstieg.
Vieleicht waere es in Deinem Post fuer den Einsteiger noch hilfreich welche modi es bei vi(m) gibt und wie man da wieder
rauskommt.
Ich werde mir das überlegen. Wie gesagt ist es nicht als Tutorial aufzufassen (jedenfalls hab ich es nicht so vorgesehen) weil man m.E. einige Grundkenntnisse braucht um die Tabelle zu nutzen.
...
ist die Befehlszeilenreferenz in allen Terminals gleich also sh, bash,dash(Ubuntu) , ksh , blafasel ?
denn bei denn Kommandozeilenbefehlen wissen wir das es nicht so ist.
Ich werde das oben einarbeiten wenn ich ein bisschen Zeit habe, hier schonmal soviel: die Tastaturbelegung wird auf der Kommandozeile (also ohne X-Window) mit der aus /usr/share/kbd/keymaps/i386/qwertz/ geladenen Datei festgelegt, das findet beim Systemstart statt und wo genau der Befehl dazu steht ist distributionsabhängig.
Wenn man X-Window benutzt, dann muss man (auf aktuellen Systemen) die Datei /etc/X11/xorg.conf.d/90-keyboard-layout.conf bearbeiten, wenn diese nicht existiert kann man sie aus /usr/share/X11/xorg.conf.d/ rüber kopieren. Die dort eingestellte Tastaturbelegung ist Systemweit gültig (wenn man es nicht anders konfiguriert).

Markus
Bitte warten ..
Mitglied: Alchimedes
31.08.2013, aktualisiert um 22:17 Uhr
Hallo Markus ,

danke das Du Dir die Muehe machst !


Korrektur:
ist die Befehlszeilenreferenz in allen Terminals gleich
ich meinte natuerlich nicht Terminals sondern shells....


zur Info:
Die Kameraden hab ich auch noch gefunden...

G = fuer an die letzte Zeile des Dokuments springen.
!G = fuer an den Anfang des Dokuments springen
cw = aktuelles Wort ersetzen
dw = aktuelles Wort löschen (incl. angehängtem Leerzeichen)
de = aktuelles Wort löschen (über Zeile hinaus)
dl = Zeichen unter Cursor-Position löschen ( also wohl wie x )
dj = zwei Zeilen löschen (Cursor-Position ist 1. Zeile)
dk = zwei Zeilen löschen (Cursor-Position ist 2. Zeile)

Hau rein
Bitte warten ..
Mitglied: hmarkus
31.08.2013 um 22:29 Uhr
Hallo,

G fehlte in der Tat, ich hab es ergänzt. Das anderen sind ja zusammengesetzte Kommandos, wenn man die bei Vim alle aufzählen will muss man mehrere Bücher veröffentlichen. Daher der Tipp vimtutor durchzuarbeiten.

Zu Deiner Frage: die Tastenbelegungen sind von der Shell unabhängig.

Markus
Bitte warten ..
Mitglied: broecker
04.09.2013, aktualisiert um 21:10 Uhr
Automatisches Suchen und Ersetzen im ganzen Text oder Zeilenbereich nutze ich häufig: :%s/henne/ei/g oder auch :VON,BISs/henne/ei/g - auch schon zusammengesetzt
HG
Mark
Bitte warten ..
Mitglied: Alchimedes
10.09.2013, aktualisiert um 23:55 Uhr
Hallo Broecker ,

die sed Befehle funzen so nicht.... ich geh davon aus das ueber Du vi(m) -> / %s/henne/ei/g benutzt hast ?

Weil uber das Slashzeichen im Text suchen geht, aber ersetzen geht nicht...

also ins Terminal gekloppt:

vim test

Hallo das ist ein test
:x!

vim test

Hallo das ist ein test ( befinden uns im Komandomodus )
/%/Hallo/Hello/g
( Enter.... es passiert nichts... wo ist da der Denkfehler ? )

Gruss
Bitte warten ..
Mitglied: hmarkus
11.09.2013 um 05:07 Uhr
Zitat von Alchimedes:
Hallo Broecker ,

die sed Befehle funzen so nicht.... ich geh davon aus das ueber Du vi(m) -> / %s/henne/ei/g benutzt hast ?

Weil uber das Slashzeichen im Text suchen geht, aber ersetzen geht nicht...

also ins Terminal gekloppt:

vim test

> Hallo das ist ein test
> :x!

vim test

> Hallo das ist ein test ( befinden uns im Komandomodus )
> /%/Hallo/Hello/g
( Enter.... es passiert nichts... wo ist da der Denkfehler ? )

Gruss
Um das nochmal klar zu stellen: Suche mit / und ersetzten geht mit : (beides im Kommandomodus).

% bei der Suche bedeutet "alle Zeilen", sonst n,m für "Zeile n bis m", dabei ist n,$ "von n bis zum Dateiende", also
:51,$s/Hallo/Hello/ 
ersetzt jeweils das erste Vorkommen in der Zeile von Zeile 51 bis zum Dateiende.

Markus
Bitte warten ..
Mitglied: Alchimedes
12.09.2013 um 17:42 Uhr
Hallo Markus ,

Danke fuer den Hinweis !

Ich Schussel....

Gruss
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
IDE & Editoren
Vim 8.0 released! (2)

Link von Lochkartenstanzer zum Thema IDE & Editoren ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (15)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...