Bash mit vi (vim) Befehlen - vi Mode

Konfiguration Bash kann mit vi Befehlen gesteuert werden. dazu muss lediglich entweder im Benutzerverzeichnis in die Datei .bashrc oder systemweit in die /etc/bash.basrc eine Zeile eingetragen werden # Aktivieren des VI Modus -> Energie ! set -o vi Konfiguration akvtieren In der nächsten Session (z.B. neuer Login) oder durch das Ausführen des Befehls source ~/.bashrc oder source /etc/bash.basrc wird diese neue Einstellung aktiv. Alternativ kann statt dem Befehl source auch der Befehl exec benutzt werden. Dieser ersetzt die aktuelle Shell mit einer komplett neuen Shell. Die “alte” Shell bleibt dann solange im Hintergrund, bis die neue Shell beendet wurde. Wie so eine Matrjoschka Puppe. ...

08.09.2024 · hoergen

Vim - Bereiche mit Klammern umschließen

Manchmal ist die Denke einfach zu kompliziert. Da wollte ich in vim einen Bereich möglichst effizient mit runden Klammern versehen und habe eine Weile rum gemurgst, bis ich dann die einfache Lösung gefunden habe: Bereich auswählen mit v und z.B. $ bis zum Zeilenende dann c drücken () schreiben ESC drücken und ein großes (shift) P drücken also v$c()<ESC>P Und alles ist schön umklammert. Wenn es egal ist den Bereich visuell zu markieren, dann geht es auch ohne das v und das $ (bis Zeilenende) muss nach dem c eingegeben werden. (Danke Rebeka!) ...

05.03.2024 · hoergen

Vim Zeitgeschichte - Time Table

Ich bin letztens über einen Artikel auf pikuma.com über die Vor- und Geschichte von Vim gestolpert, den ich auch weiter unten in den Quellen verlinkt habe. Ich fand die Geschichte über die Entstehung des Editors Vim und seiner Vorgänger so beeindruckend, dass ich für mich eine Zeittafel zusammengestellt habe, wann wer was gemacht hat. Das ist schon sehr krass, dass Vim 1988 auf dem Amiga begonnen und am 02.11.1991 in der Version 1.14 über die Disketten Distribution Fred Fish Disk #591 verteilt wurde. Und dass der Ursprung dieses Editors jetzt über 55 Jahre zurück liegt. ...

26.01.2024 · hoergen

Vim - mit Tabs fensterln

Ein Buffer (Puffer) ist der im Arbeitsspeicher befindliche Text einer Datei. └- Ein Fenster (Window) ist ein Ausschnitt (Viewport) aus einem Buffer. └— Eine Tab-Seite (Tab) ist eine Sammlung von Fenstern. Hilfe :help tab-page Kommando: <none> Öffnen tabnew <NAME> Neues Tab (Buffer) tabf <NAME> Find - sucht im aktuellen Verzeichnis nach einer Datei. Tabulator Completion funktioniert tab <VIM BEFEHL> öffnet ein neues Tab und führt einen Vim Befehl aus z.B. :tab help tab-pages Mit einem neuen Tab kann auch gleich eine bestehende Datei geladen werden, indem mit dem Befehl der Dateiname mitgegeben wird. ...

07.01.2024 · hoergen

Vim - Windows

Ein Buffer (Puffer) ist der im Arbeitsspeicher befindliche Text einer Datei. └- Ein Fenster (Window) ist ein Ausschnitt (Viewport) aus einem Buffer. └— Eine Tab-Seite (Tab) ist eine Sammlung von Fenstern. Hilfe :help windows Kommando :wincmd Strg+w Die aktuelle Ansicht in mehrere Fenster aufteilen. Detailliertere Informationen und weitere alternative Befehle sind in der Hilfe zu finden Teilen & Neu Strg+w s / :sp / :split Fenster horizontal teilen (gleicher Inhalt/Buffer) Strg+w v / :vs / :vsplit Fenster vertikal teilen (gleicher Inhalt/Buffer) Strg+w n / :new Fenster horizontal teilen und neues Dokument (leerer Buffer) erstellen :vne / :vnew Fenster vertikal teilen und neues Dokument (leerer Buffer) erstellen Schliessen Strg+w q / :q Fenster schließen. Strg+w o / :on / :only schließt alle anderen Fenster, ausser das aktuelle Fenster Es gibt noch viele weitere Parameter zum Fenster schließen Navigation Strg+w Pfeiltasten Zwischen den Fenstern wechseln. Es gehen auch die Vim Cursor Strg+w p Zum letzten Fenster zurück wechseln Strg+w r / Strg+w R Fenster durchrotieren runter/rechts und hoch/links Größe Strg+w = Alle Fenster gleich groß machen Strg+w - Das aktuelle Fenster um 1 vertikal kleiner machen. Strg+w 5 - um 5 kleiner machen Strg+w + Das aktuelle Fenster um 1 vertikal größer machen Strg+w _ Das aktuelle Fenster vertikal maximieren. Alle anderen Fenster so klein wie möglich machen Strg+w | Das aktuelle Fenster horizontal maximieren Eine Vollbildanzeige kann mit der Kombination von Strg+w _ und/oder Strg+w | erreicht werden Strg+w < Das aktuelle Fenster um 1 horizontal kleiner machen. Strg+w 7 < um 7 kleiner machen Strg+w > Das aktuelle Fenster um 1 horizontal größer machen In einer grafischen Oberfläche lassen sich die Fenster am Rahmen mit der Maus kleiner und größer machen Weitere hyperblog Artikel zum Thema ...

05.01.2024 · hoergen

Vim-Zeilenspielereien - Join

Zeilen zusammenfügen oder teilen in allen Variationen. Der Befehl dafür heißt JOIN Anmerkung: Groß-/Kleinschreibung ist wichtig. Großbuchstaben werden nicht extra mit einem SHIFT hervorgehoben Join zwei Zeilen zusammenführen J mit Leerzeichen J - Sollen zwei Zeilen, die durch einen Zeilenumbruch getrennt wurden zusammengeführt werden, so kann in der oberen Zeile einfach ein großes J gedrückt werden. Das führt dazu, dass die untere Zeile nach oben geholt UND mit einem Leerzeichen Abstand an die aktuellen Zeile angehängt wird. ...

02.11.2023 · hoergen

Vim Cheat Sheet

Weitere Vim Artikel hier im Blog. Erklärung Vim ist ein modaler Editor. Dies bedeutet, dass man in unterschiedlichen Modi arbeitet, was Einsteigern oft Probleme bereitet, andererseits aber eine sehr große Zahl von Tastenkürzeln erlaubt, da sich diese an einzelne Modi binden und daher auch mehrfach belegen lassen. Es gibt sechs Grundmodi. Zusätzlich gibt es noch fünf weitere Grundvarianten der Grundmodi. ...

12.09.2023 · hoergen

Vim - Suchen & Ersetzen - RegEx

Reguläre Ausdrücke (RegEx) sind DER Shit, wenn es darum geht extrem schnelle und auch sehr komplexe Dinge mit Texten bzw Strings oder einfach generell bei Suchen zu veranstalten. Ein Anwendungsfall kommt immer wieder vor, nämlich das Suchen&Ersetzen. Das Muster sieht so aus :[range] s / [pattern] / [string] / [flags] [count] [range] bei range steht meist ein Prozentzeichen % das für den gesamten Text aka der gesamte Datei Inhalt. hier können auch 1,$ = erste Zeile, erstes Zeichen bis letzte Zeile, letztes Zeichen .,$ heisst von der aktuellen Zeile bis zum Ende Von der aktuellen Zeile für weitere 10 Zeilen :.,.+10 {Nummer} - in Zeile Nummer sowieso z.B. :14 Zeile 14 Die Übersicht der schier unendlichen Bereichsangaben bekommst du, wenn du vim aufrufst und dann :h range eingibst s (substitute) Zwischen dem Range und dem s darf kein Leerzeichen sein! (häufiger Fehler) Substitute ist die Suchen&Ersetzen Funktion. Wichtig zu wissen ist, dass alle Zeichen, die nicht in a-z und A-Z sind, müssen mit einem vorangestelltem Backslash \ “escaped” werden. Also Zahlen, Punkte, Klammern und Sonderzeichen mit einem Backslash \ escaped werden. Ein Backslash wird dann natürlich auch mit einem Backslash escaped \\. Und ein Slash im Suchstring wird natürlich auch mit einem Backslash escaped \/ . Auch ein Leerzeichen bzw Blank wird mit einem Backslash escaped. Der Grund dafür ist, dass viele dieser Zeichen selbst eine Funktion für die Suche darstellen. Und damit da keine Verwechselung entsteht muss extra “escaped” werden. [pattern] Pattern ist der zu suchende Text Mit einem einleitenden \cTEXT wird Groß- und Kleinschreibung bei TEXT ignoriert Mit einem \v (magic mode) müssen Zeichen wie ein Leerzeichen oder Gänsefüßchen nicht extra escaped werden In einem Pattern können auch wiederum Pattern-Funktionen eingefügt werden, wie z.B. ab dem 5. Zeichen (spalte/column) %5c oder bis zum 5. Zeichen %>5c und viele weitere. in vim :help pattern [string] String ist der Text, der das gesuchte Pattern ersetzt werden soll. [flags] g (global) wiederholt das Suchen&Ersetzen, bis zum Ende des Textes. Wird g nicht angegeben, wird nach dem ersten Suchtreffer aufgehört. c (confirm) zum Bestätigen des Ersetzens i (ignore) um Groß/Kleinschreibung zu ignorieren [count] der Parameter count wird bei Bedarf in einer positiven ganzen Zahl wie z.B. 5 angegeben. Er wirkt sich auf das Suchen&Ersetzen so aus, dass z.B. %s/blah/blubb/g 5 - vom Textanfang die ersten 5 Zeilen bearbeitet werden 10,$s/blah/blubb/g 5 - ab Zeile 10, die Zeilen 10, 11, 12, 13, 14, also insgesamt 5 Zeilen bearbeitet werden. Slash / - das Slash “/” trennt die verschiedenen Parameter voneinander. ...

17.08.2023 · hoergen