Sent from Hauptstadt!

ein Blog für den geneigten Leser

vim: Leerzeichen am Zeilenende löschen

Tags:

Kategorie Software Engineering | 5 Kommentare »

Fügt man in vim etwas aus der Zwischenablage wie Quelltext ein, sollte man zuvor den Paste-Modus aktivieren:

:set paste

Fügt man nun etwas ein, übernimmt vim den Inhalt der Zwischenablage 1:1 und versucht sich nicht an wilder Reformatierung. Kopiert man aber Code aus einem anderen Terminal, so sind am Zeilenende viele Leerzeichen, die dann natürlich auch eingefügt werden.

Um nun nicht manuell diese Leerzeichen löschen zu müssen, kann man diese über folgendes Kommando suchen und durch nichts ersetzen.

:%s/\s\+$//e

Anschließend sollte man natürlich noch den Paste Modus wieder deaktivieren.

:set nopaste

5 Kommentare to “vim: Leerzeichen am Zeilenende löschen”

  1. Matin sagt:

    Wieso kommt vor dem + ein Backslash?

  2. Sebastian sagt:

    \s steht für alle Whitespaces. \+ ist ein so genannter Quantifizierer, der sich auf das \s bezieht. Sinngemäß bedeutet der Ausdruck, finde 1 oder mehr Whitespaces, die direkt am Zeilenende stehen. Das Zeilenende ist durch $ angegeben. Siehe auch: http://vimregex.com/#Non-Greedy

  3. Matin sagt:

    Regular expressions sind mir schon vertraut. Ich wende das Plus jedoch ohne Backslash an.

  4. Matin sagt:

    Das würde zumindest erklären, warum ich mit der Suche in vi so selten Erfolg hatte :-)

  5. Matin sagt:

    Ich habe die Doku Mal kurz überflogen. Es scheint so, dass alle regular expression Elemente mit Backslash eingeleitet werden. Nur der Stern scheint da herauszufallen.

Schreiben sie ein Kommentar