Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:vim

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

admin_grundlagen:vim [2016/01/18 11:13]
ingo_wichmann
admin_grundlagen:vim [2022/09/28 14:25]
Zeile 1: Zeile 1:
-====== vi überleben ====== 
-^ Befehl ^ Funktion ​                  ^ 
-| ''​i'' ​     | Einfügemodus (**i**nsert) ​ | 
-| ''<​ESC>'' ​ | Befehlsmodus ​              | 
-| '':​w'' ​    | speichern (**w**rite) ​     | 
-| '':​q'' ​    | beenden (**q**uit) ​        | 
-| '':​q!'' ​   | beenden ohne speichern ​    | 
-| '':​wq'' ​   | speichern und beenden ​     | 
- 
-| ''​u'' ​     | Rückgängig (**u**ndo) ​     | 
-| ''​Strg+r''​ | undo Wiederherstellen (**r**edo) | 
- 
-In älteren Vim-Versionen nützlich: 
-| ''​J'' ​     | hängt die nächste Zeile an das Ende der aktuellen Zeile an (**j**oin) | 
- 
-====== VIM lernen ====== 
-  * mit einem Browser-Spiel:​ http://​vim-adventures.com/​ 
-  * mit vimtutor: 
-  vimtutor 
- 
-====== Grundlagen ====== 
-===== Navigationsbefehle I ===== 
-{{:​admin_grundlagen:​adm-3a-hjkl-keyboard.jpg?​200|}} 
- 
-| ''​w'' ​   | ein Wort weiter (**w**ord) | 
-| ''​b'' ​   | ein Wort zurück (**b**ack) | 
-| ''​e'' ​   | zum nächsten Wortende (**e**nd)| 
-| ''​0'' ​   | zum Zeilenanfang | 
-| ''​$'' ​   | zum Zeileneinde | 
-| ''​gg'' ​  | Dateianfang (**g**o) ​      | 
-| ''​10gg''​ | Zeile 10               | 
-| ''​G'' ​   | letzte Zeile           | 
-| ''/'' ​   | Vorwärts suchen ​       | 
-| ''?'' ​   | Rückwärts suchen ​      | 
-| ''​n'' ​   | Zum nächsten Treffer in gleicher Richtung springen (**n**ext)| 
-| ''​N'' ​   | Zum nächsten Treffer in entgegengesetzter Richtung springen ​ | 
- 
-===== Änderungsbefehle I ===== 
-^ c…    ^ ersetzen (**c**hange) ​                  ^ 
-| cw    | Wort ersetzen (change word)             | 
-| cc    | Zeile ersetzen ​                         | 
-| C     | bis zum Ende der Zeile ersetzen ​        | 
-^       ​^ ​                                        ^ 
-| .     | letzten Befehl wiederholen | 
- 
-==== Anwendungsbeispiel:​ suchen und ersetzen I ==== 
-| /      | suchen ​                   | 
-|.. Suchwort eingeben .. || 
-| cw     | 1 Wort ersetzen ​   | 
-|.. Ersatzwort eingeben ..|| 
-| <​ESC> ​ | Änderung beenden ​         | 
-| n      | zum nächsten Treffer springen ​         | 
-| .      | Ersetzung wiederholen | 
- 
-==== copy & paste ==== 
-^ d…    ^ ausschneiden (**d**elete) ​              ^ 
-| dw    | Wort ausschneiden (delete word)         | 
-| dd    | Zeile ausschneiden ​                     | 
-| dj    | Zeile und nächste Zeile ausschneiden ​   | 
-| dk    | Zeile und vorherige Zeile ausschneiden ​ | 
-| D     | bis zum Ende der Zeile ausschneiden ​    | 
-^ y…    ^ kopieren (**y**ank) ^ 
-| yw    | Wort kopieren ​           | 
-| yy    | Zeile kopieren ​           | 
-| Y     | bis zum Ende der Zeile kopieren | 
-^       ^ einfügen (**p**aste)^ 
-| P     | an aktueller Position einfügen | 
-| p     | nach aktueller Position einfügen | 
- 
-===== Visueller Modus ===== 
-| v      | Visueller Modus | 
-| V      | Visueller Modus, zeilenweise | 
-| Strg+v | Visueller Modus, blockweise | 
- 
-==== Anwendungsbeispiel:​ suchen und ersetzen II ==== 
-| /      | suchen ​                   | 
-|.. Suchwort eingeben .. || 
-| vwc    | 1 Wort ersetzen ​   | 
-|.. Ersatzwort eingeben ..|| 
-| <​ESC> ​ | Änderung beenden ​         | 
-| n      | zum nächsten Treffer springen ​         | 
-| .      | Ersetzung wiederholen | 
- 
-====== Beispiel Texte ====== 
-[[vim beispiel texte]] zum Üben 
- 
-====== Fortgeschrittene Befehle ====== 
-| Befehl | Funktion | 
-| ZZ     | speichern & verlassen | 
-| :x     | speichern & verlassen | 
- 
-===== Suchen und Ersetzen III ===== 
-^ Befehl ^ Funktion ^ 
-| '':​%s/​suchwort/​ersatz/​g''​ | suchen und ersetzen, mit Bestätigung | 
-| '':​g/​^$/​d''​ | Alle Leerzeilen löschen |  
- 
-===== Dateinamen-Ergänzung a la Tab-Taste ===== 
-Im Einfügemodus:​ 
-  Strg+x f 
-Mehr dazu: [[ http://​vimdoc.sourceforge.net/​htmldoc/​insert.html#​ins-completion | vim.org Dokumentation ]] 
- 
-===== Mehrere Dateien bearbeiten ===== 
-|''​vi -o file1 file2'' ​ |horizontaler Split\\ (Fenster wechseln mit ''​Ctrl+W Cursortaste''​) ​ | 
-|''​vi -O file1 file2'' ​ |vertikaler Split (Dateien nebeneinander) ​ | 
-|''​vi -p file1 file2'' ​ |Tab-Modus\\ (Dateitabs wechseln mit ''​g''​ ''​t''​ (__g__o__t__o) - ''​T''​ für rückwärts ​ | 
- 
-===== Konfigurationsdateien ohne Kommentare anzeigen ===== 
-  :set fdm=expr 
-  :set fde=getline(v:​lnum)=~'​^\\s*#'?​1:​getline(prevnonblank(v:​lnum))=~'​^\\s*#'?​1:​getline(nextnonblank(v:​lnum))=~'​^\\s*#'?​1:​0 
- 
-====== Navigationsbefehle II ====== 
-| {    | zum nächsten Absatz | 
-| }    | zum vorherigen Absatz | 
- 
-====== Nützliche Informationen und Befehle ====== 
-Vim öffnen: 
- 
-  vim <​Datei>​ - öffnet eine leere Datei mit dem Namen welche ich beim Öffnen angegeben habe 
-  vim + <​Zeilennummer>​ + <​Datei>​ - öffnet eine leere Datei mit dem Namen welchen ich angegeben habe und springt in die angegebene Zeile 
-  vim . - Ich kann mit die Datei aussuchen welche ich öffnen will. Durch den Punkt werden die Dateien aus dem aktuellen Verzeichnis angezeigt 
- 
-Modi: 
- 
-  - Command/​normal Mode 
-  - Insert Mode (zum normalen Schreiben) 
-  - Ex Mode (das was man kriegt, wenn man im command-Mode ":"​ drückt) 
-  - Visual Mode 
- 
- 
-Command Mode: 
- 
-Im command-Mode haben Befehle den folgenden Aufbau: 
- 
-  [count][command][range] 
- 
-oder 
- 
-  [command][count][range] 
- 
-[count] ist Dabei optional. Es gibt an, wie oft [command] oder [range] ​ 
-ausgeführt werden soll. 
- 
-Mit "​range"​ bezeichne ich Sprungbefehle. Sie werden benutzt, um sich innerhalb ​ 
-der Datei zu bewegen. Manche commands erwarten keine range. 
- 
-Die wichtigsten Commands: 
- 
-  d - delete - löschen 
-  y - yank - in den zwischenspeicher kopieren 
-  yw - Wort kopieren 
-  yy - Zeile kopieren 
-  3yy - 3 Zeilen kopieren 
-  p - vorher Kopiertes einfügen (put | leichter zu merken ist "​paste"​) 
-  P - vorher Kopiertes *vor* dem Cursor einfügen 
-  c - change - löschen, und danach in den insert-Modus wechseln 
-  shift + J - fügt Zeilen zusammen 
- 
-Die gebräuchlisten Ranges: 
- 
-  w - Wort vorwärts springen 
-  b - Wort rückwärts springen 
- 
-Beispiele: 
- 
-  w - Wort weiterspringen 
-  dw - Wort löschen - command "​delete",​ reichweite "​Cursor bis Sprungende"​ (Wort) einfach zu merken mit "del word" 
-  d2w - einmal zwei Worte löschen 
-  2dw - zwei mal ein Wort löschen (gleiches ergebnis wie d2w) 
-  10i- - 10 "​-"​ einfügen (erst beim Wechsel in den command-Mode,​ da ja der ganze insert-Mode (i) 10 mal ausgeführt wird) 
- 
-Das ist der grundsätzliche Aufbau, den man mit allen anderen Befehlen ​ 
-kombiniert. 
- 
-Andere Nützlichkeiten im command-Mode:​ 
- 
-  . - letzes command wiederholen. 
-  cw - Wort austauschen. Wie "​dwi"​. "​change word" 
-  i - in den insert-Modus wechseln 
-  I - in den insert-Modus wechseln und Cursor an den Anfang der Zeile positionieren. Kurz: Wenn man etwas am Anfang der Zeile einfügen will 
-  a - append -> wenn man etwas hinter dem Cursor einfügen will 
-  A - append -> wenn man etwas am Ende der Zeile einfügen will 
-  o - open new line - Leerzeile anfügen + insert-Mode 
-  O - open new line - Leerzeile einfügen + insert-Mode 
-  ddp - aktuelle Zeile eins nach unten verschieben 
-  xp - Buchstaben vertauschen ​ 
- 
-Bewegen im command-mode / "​range"​-Befehle:​ 
- 
-  w - Wort weiter springen ​     
-  W - wie w, überspringt aber mehr (z.B. Kommas) 
-  b - Wort zurück springen 
-  B - wie b, überspringt aber mehr (z.B. Kommas) 
-  e - springt bis zum Ende des Wortes unter dem Cursor 
-  E - wie E, überspringt aber mehr (z.B. Kommas) 
-  { } - Absatz vor/zurück springen. Sehr praktisch in einer .rhosts! 
-  0 - pos1 
-  $ - ende 
-  * - springt vorwärts zum nächsten Vorkommen des Wortes unter dem Cursor 
-  # - springt rücwärts zum vorherigen Vorkommen des Wortes unter dem Cursor 
- 
-Insert Mode: 
- 
-Insert Modus - wenn unten "​insert"​ steht. Was man drueckt wird direkt eingefuegt. Verlassen mit ESC 
- 
-Ex Mode: 
- 
-  :w <​Datei>​ - Speichert es in einer neuen Datei 
-  :e . - Eine andere Datei auf dem aktuellen Verzeichnis öffnen 
-  :e /etc/passwd - Die Datei passwd öffnen 
-  :r /etc/hosts - Den Inhalt der angegebenen Datei an die Cursorposition des offenen Dokuments einlesen 
-  :tabnew - Neuen Tab erstellen 
-  :tabnext - In den nächsten Tab springen 
-  :tabclose - Tab schließen 
-  :redo - Holt den Text wieder wenn ich zuviele undos gemacht habe 
- 
-Suchen und ersetzen: 
- 
-  :1,60 - ersetzen von Reihe 1-60 
-  :1,$ - ganzer Text (bis Textende) 
-  :% - ganzer Text (ebenfalls bis Textende) 
-  :.,+10 - von der Courser Position an Zehn Zeilen 
-  :-5,10 
- 
-  :​%s/​bash$/​sh/​ - ersetzt bash wenn es am Ende steht durch sh 
-  :​%s/​bash/​sh/​ - ersetzt bash durch sh, aber pro Zeile nur den ersten treffen 
-  :​%s/​bash/​sh/​g - ersetzt bash durch sh, im ganzen Text, auch mehrmals pro Zeile wenn es vorkommt 
-  :​%s/​bash/​sh/​gc - ersetzt bash druch sh, im ganzen Text, auch mehrmals pro Zeiel wenn es vorkommt und man wird gefragt ob man das ändern will 
- 
-  :%s/^a/A/ - ersetzt alle kleingeschrieben a am Anfang jeder Zeile durch ein A 
- 
-  :help <​Befehl>​ 
-  :syntax on - Syntax highlighting 
-  :set number 
-  :set nonumber 
-  :set list - Steuerzeichen anzeigen 
-  :set all - Zeigt alle Befehle an in Kombination mit set 
- 
-Visual Mode: 
- 
-neben den 3 standard-Modi hat vim noch den Visual mode. Er ist wie normales ​ 
-Markieren mit shift-Cursortasten und wählt einen Bereich aus, den man dann mit  
-commands editieren kann. 
- 
-  v     ​normales markieren 
-  V     ​zeilenweises markieren 
-  ^V    eckiges markieren (block mode) 
- 
-Bsp: Block auskommentieren im Visual Mode: 
- 
-  Mit Strg-V in den Modus --VISUELL BLOCK-- wechseln. 
-  Die Zeilen die auskommentiert werden sollen mit den Cursor Tasten markieren. 
-  Mit Shift-I in den Einfüge Modus wechseln. 
-  Das Kommentarzeichen (z.B. #) einfügen. 
-  ESC drücken um aus dem Modus zu kommen. 
-Die Zeilen bekommen wie von Zauberhand das '#'​ Zeichen vorangestellt. 
- 
-Bsp: Block entkommentieren im Visual Mode: 
- 
-  Mit Strg-V in den Modus --VISUELL BLOCK-- wechseln. 
-  Die Zeilen die entkommentiert werden sollen mit den Cursor Tasten markieren. 
-  Die Entf Taste drücken. 
-  Fertig. 
- 
- 
-====== Alternative Editoren ====== 
-| Befehl | SuSE Paket | Debian Paket | CentOS Paket | Beschreibung ​               | 
-| mcedit | mc         | mc           ​| ​             | Teil vom Midnight Commander |    
-| nano   ​| ​           |              |              |                             ​| ​   
- 
- 
- 
-====== Dokus und Links ===== 
- 
-  * [[http://​www.debian-administration.org/​article/​Hiding_comments_in_configuration_files]] 
-  * [[https://​blog.interlinked.org/​tutorials/​vim_tutorial.html|Tutorial mit Graphiken zur Navigation]] 
-  * Interview mit Bill Joy über die Entstehung von "​vi"​ [[http://​web.cecs.pdx.edu/​~kirkenda/​joy84.html]] ​ 
-  * {{:​vi-vim-cheat-sheet.gif|http://​www.viemu.com/​vi-vim-cheat-sheet.gif}} 
- 
  
admin_grundlagen/vim.txt · Zuletzt geändert: 2022/09/28 14:25 (Externe Bearbeitung)