Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
VIM alle leerzeichen am zeilenende abschneiden

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Software
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
mrvim
Gast





BeitragVerfasst am: 25. Jul 2004 14:57   Titel: VIM alle leerzeichen am zeilenende abschneiden

hallo leute,

wie ist es möglich, alle leerzeichen am zeilenende zu löschen?
oder wahlweise evtl alle am zeilenanfang und am ende (ähnlich truncate)?

thx
 

heinrich



Anmeldungsdatum: 22.09.1999
Beiträge: 219
Wohnort: N49.137 E8.544

BeitragVerfasst am: 26. Jul 2004 7:29   Titel:

Klar geht das:

GVim:
:%s/\s*$//g

vi:
sorry, aber vi scheint das nicht zu können

GNU/Emacs:
Funktionen aufrufen:
M-x edit-picture
C-c C-c
_________________
It just works.
 
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name

mrvim
Gast





BeitragVerfasst am: 26. Jul 2004 10:38   Titel: leerzeichen

super, es funzt

kannst du mir auch noch erklären was die einzelnen zeichen machen?

ich weiss nur das das $ für "bis zeilenende steht" welcher part ist für "alle leerzeichen vom letzten zeichen (ausser leer) löschen" verantwortlich?

danke
 

heinrich



Anmeldungsdatum: 22.09.1999
Beiträge: 219
Wohnort: N49.137 E8.544

BeitragVerfasst am: 26. Jul 2004 19:17   Titel:

:%s/\s*$//g

das ":%" kannst du auch schreiben als ":1,$ " und bedeutet nur, dass das was jetzt noch kommt für jede Zeile in der Datei (beginnend vom Dateianfang bis Dateiende) durchzuführen ist

"s/\s*$//g" wird dann für jede Zeile der Datei ausgeführt.

"s/..../..../g" führt allgemein eine Ersetzung durch

Wenden wir uns dem "\s*$" zu:

"\s" matched alle Leerzeichen und Tabulatoren

"\s*" matched einfaches und mehrfaches vorkommen von Leerzeichen und/oder Tabulatoren

"\s*$" matched einfaches und mehrfaches vorkommen von Leerzeichen und/oder Tabulatoren vor einem Zeilenende
_________________
It just works.
 
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name

heinrich



Anmeldungsdatum: 22.09.1999
Beiträge: 219
Wohnort: N49.137 E8.544

BeitragVerfasst am: 26. Jul 2004 19:22   Titel:

Genauso kannst du mit vim/gvim das "Lösche alle Leerzeichen und Tabulatoren am Zeilenanfang realisieren:

"\s" matched Leerzeichen und Tabulatoren

"\s*" matched ein- und mehrfache Leerzeichen und Tabulatoren

"^\s*" matched ein- und mehrfache Leerzeichen und Tabulatoren am Zeilenanfang

jetzt noch das ganze in ein "s/..../..../g" eingebunden für das Suchen+Ersetzen: "s/^\s*//g"

und schlussendlich noch das "für jede Zeile der Datei" mit ":%" oder mit ":1,$ " dann ergibt sich:

:%s/^\s*//g
oder
:1,$ s/^\s*//g
_________________
It just works.
 
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name

heinrich



Anmeldungsdatum: 22.09.1999
Beiträge: 219
Wohnort: N49.137 E8.544

BeitragVerfasst am: 26. Jul 2004 19:44   Titel:

vim/gvim kennt ausser "\s" noch eine ganze menge weiterer Pattern

Einfach mal im vim/gvim ":help pattern" eintippen oder zu http://www.vim.org/htmldoc/pattern.html gehen


Für den Emacs:
Löschen von Leerzeichen/Tabs am Zeilenanfang mit dem Emacs:

M-x query-replace-regexp <enter>^[<leerzeichen><tab>]*<enter><enter>

Das <enter>, <leerzeichen> und <tab> ist nicht als Text einzutippen, sondern es sind die jeweiligen Tasten zu drücken Wink

Siehe auch innerhalb des Emacs wenn du "C-h a query-replace-regexp" eintippst.
_________________
It just works.
 
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name

mrvim
Gast





BeitragVerfasst am: 27. Jul 2004 9:44   Titel: leerzeichen

herzlichen dank für die gute und ausführliche antwort Wink
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Software Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy