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 [2014/06/03 13:52]
carsten_strotmann [Alternative Editoren]
admin_grundlagen:vim [2021/11/02 22:13]
Zeile 1: Zeile 1:
-====== Überleben mit vi ====== 
-| Befehl | Funktion ​              | 
-| i      | Einfügemodus ​          | 
-| <​ESC> ​ | Befehlsmodus ​          | 
-| :w     | speichern ​             | 
-| :q!    | beenden ohne speichern | 
-| :wq    | speichern und beenden ​ | 
-| :x     | speichern und beenden ​ | 
- 
-===== Weitere Befehle ===== 
-| u      | Rückgängig ​            | 
-| Strg+r | undo Wiederherstellen ​ | 
- 
-In älteren Vim-Versionen nützlich: 
-| J      | hängt die nächste Zeile an das Ende der aktuellen Zeile an (join) | 
- 
-====== VIM lernen mit einem Browser-Spiel ====== 
- 
-http://​vim-adventures.com/​ 
- 
-====== Grundlagen ====== 
-===== Navigationsbefehle I ===== 
-{{:​admin_grundlagen:​adm-3a-hjkl-keyboard.jpg?​200|}} 
- 
-| w    | ein Wort weiter (word) | 
-| b    | ein Wort zurück (back) | 
-| gg   | Dateianfang (go)       | 
-| 10gg | Zeile 10               | 
-| G    | Dateiende (go)         | 
-| /    | suchen ​                | 
- 
-===== Änderungsbefehle I ===== 
-| dw    | Wort löschen (delete word)         | 
-| dd    | Zeile löschen ​                     | 
-| D     | bis zum Ende der Zeile löschen ​    | 
-| cw    | Wort ändern (change word)          | 
-| cc    | Zeile ändern ​                      | 
-| C     | bis zum Ende der Zeile ändern ​     | 
- 
-==== copy & paste ==== 
-| yy     | Zeile kopieren ​           | 
-| dd     | Zeile ausschneiden ​       | 
-| P      | einfügen ​                 | 
-| vwy    | Wort kopieren ​            | 
-| yw     | Wort kopieren ​            | 
- 
-====== Anwendung der Grundlagen ====== 
-===== suchen und ersetzen I ===== 
-| /      | suchen ​                   | 
-.. Suchwort eingeben .. 
-| v      | visueller modus - zeichenweise ​         | 
-| [Shift] v | visueller modus - zeilenweise ​         | 
-| [Strg] v | visueller modus - spaltenweise ​         | 
-.. Suchwort markieren .. 
-| c      | markierten text ändern ​   | 
-| I      | einfügen ​                 | 
-| d      | löschen ​                  | 
-| y      | kopieren ​                 | 
-.. Ersatzwort eingeben 
-| <​ESC> ​ | Änderung beenden ​         | 
-| n      | nächster Treffer ​         | 
-| .      | letzen Befehl wiederholen | 
- 
- 
-====== Fortgeschrittene Befehle ====== 
-| Befehl | Funktion | 
-| ZZ     | speichern & verlassen | 
-| :x     | speichern & verlassen | 
- 
-===== Suchen und Ersetzen II ===== 
-| Befehl | Funktion | 
-| '':​g/​^$/​d''​ | Alle Leerzeilen löschen |  
-| '':​%s/​suchwort/​ersatz/​gc''​ | suchen und ersetzen, mit Bestätigung | 
- 
-===== 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 | 
- 
-====== Nützliche Informationen und Befehle ====== 
-Vim öffnen: 
- 
-vim <​Datein>​ - öffnet mir eine leere Datei mit dem Namen welche ich beim öffnen angegeben habe 
-vim + <​Zeilennummer>​ + <​Datei>​ - öffnet mir 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 
- 
-Modis: 
- 
-- 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 
- 
-Suche: 
- 
-/<was ich suche> (vorwärts) (mit n zum nächsten, mit strg + n zum vorherigen) 
-?<was ich suche> (rückwärts suche) 
- 
-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 
-:tabnew - Neuen Tab erstellen 
-:tabnext - In den nächsten Tab springen 
-:tabclose - Tab schließen 
-:redo - Holt mir meinen 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 | Fedora Paket | 
-| mcedit | mc         | mc           ​| ​             |    
-| e3ne   | e3         | e3           ​| ​             |  ​ 
-| aee    |            | aee          |              |  ​ 
-| zile   ​| ​           | zile         | zile         | 
- 
- 
- 
-====== Dokus und Links ===== 
- 
-  * [[http://​www.debian-administration.org/​article/​Hiding_comments_in_configuration_files]] 
-  * 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)