gVIM, suchen & ersetzen, regex mit GUI?
Thomas7
- software
Hallo,
nun hab ich hier gelesen Fragen zu gvim und dieses PDF (http://lug.fh-swf.de/vim/vim-kurzanleitung.pd) angeguckt...
Aber so einfach scheint das für einen Neuling mit vim bzw. gvim nicht zu sein.
Frage:
Würde gerne in einem Textfile folgende Zeilen die mit
"OGXX"
"OGBL"
"OGBM"
"OGBS"
anfangen komplett entfernen.
Kann ich das so simpel über das GUI machen wie unten in dem Screenshot?
Kann ich da einen regulären Ausdrück "suchen" wenn ich denn einen hätte und einfach mit nichts ersetzen?
MfG
gudn tach!
Würde gerne in einem Textfile folgende Zeilen die mit
"OGXX"
"OGBL"
"OGBM"
"OGBS"anfangen komplett entfernen.
du moechtest alle zeilen, die mit einem dieser textbestandteile beginnen loeschen?
Kann ich das so simpel über das GUI machen wie unten in dem Screenshot?
weiss ich nicht, aber bestimmt.
Kann ich da einen regulären Ausdrück "suchen" wenn ich denn einen hätte und einfach mit nichts ersetzen?
ja, das geht:
:%s///
kennst du ja, denke ich, nun schon (das "%" steht fuer die komplette datei, fuer genaueres siehe ":h :s").
und durch nichts ersetzt werden soll
^OG(XX|B[LMS]).*\n
| -> "oder" (muss maskiert werden mit backslash)
() -> schachtelung (muss maskiert werden mit backslash)
[] -> zeichenklasse
\n -> zeilenende, kann evtl. auch \r\n oder \n\r sein.
also
:%s/^OG(XX|B[LMS]).*\n//
(ungetestet, aber zwei mal scharf angeschaut.)
prost
seth
Hallo seth.
^OG(XX|B[LMS]).*\n
| -> "oder" (muss maskiert werden mit backslash)
() -> schachtelung (muss maskiert werden mit backslash)
[] -> zeichenklasse
Hm, warum müssen einfache Klammern und die Pipe im VIM maskiert werden, die eckigen Klammern für Zeichenklassen aber nicht?
Einen schönen Sonntag noch.
Gruß, Mathias
gudn tach!
| -> "oder" (muss maskiert werden mit backslash)
() -> schachtelung (muss maskiert werden mit backslash)
[] -> zeichenklasseHm, warum müssen einfache Klammern und die Pipe im VIM maskiert werden, die eckigen Klammern für Zeichenklassen aber nicht?
das war schon immer so[tm]. (iow: keine ahnung)
vielleicht haben sich die programmierer von ed gedacht, dass diese "kryptischen" dinge wie back-refs eh keiner verwendet. ;-)
...vielleicht auch einfach, dass sie seltener verwendet werden.
vim ist da aber sehr flexibel:
:h magic
prost
seth
Hallo seth.
vim ist da aber sehr flexibel:
:h magic
Aha, \v sorgt für das gewohnte Verhalten.
Einen schönen Montag noch.
Gruß, Mathias
Ah, da biste ja!
Da kommt so ein roter Balken unten in gvim mit E486: keine Übereinstimmung...
Diese Kombinationen hab ich gestet:
:%s/^OG(XX|B[LMS]).*\n\r//
:%s/^OG(XX|B[LMS]).*\r\n//
:%s/^OG(XX|B[LMS]).*\n//
:%s/^OG(XX|B[LMS]).*\r//
So sehen die orig. Zeilen aus mit TABs alsTrenner Bsp:
"OGBS" "P" 02 2005 10610 0 2005 01 20 0.03 0.03 0.03 0.01 6900 23650 20050120
"OGBL" "C" 05 2005 11550 0 2005 02 24 0 0 0 2.19 0 0 20050224
Mit den verschiedenen Modi komm ich noch nicht klar, welchen ich für was brauche.
Normal mode command (nothing) :help x
Visual mode command v_ :help v_u
Insert mode command i_ :help i_<Esc>
Command-line command : :help :quit
Command-line editing c_ :help c_<Del>
Vim command argument - :help -
Liegt es villeicht daran? Kann aber nich sein, weil was einfache s wie "2005" hat er gefunden.
Das Ding ist ganz schön spartanisch für Normalos! Wie soll man denn die Hilfe bedienen? Ich hab jetzt einfach zB. usr_27.txt aus C:\Programme\Vim\vim70\doc in UltraEdit geöffnet ;-)
MfG
gudn tach!
Diese Kombinationen hab ich gestet:
:%s/^OG(XX|B[LMS]).*\n\r//
:%s/^OG(XX|B[LMS]).*\r\n//
:%s/^OG(XX|B[LMS]).*\n//
:%s/^OG(XX|B[LMS]).*\r//
welcher zeilenumbruch verwendet wird, kannst herausfinden mit
:set fileformat
im unix-format waere der zeilenumbruch "\n"
So sehen die orig. Zeilen aus mit TABs alsTrenner Bsp:
"OGBS" "P" 02 2005 10610 0 2005 01 20 0.03 0.03 0.03 0.01 6900 23650 20050120
"OGBL" "C" 05 2005 11550 0 2005 02 24 0 0 0 2.19 0 0 20050224
ach soo, die anfuehrungszeichen gehoeren dazu. ok, die muessen dann bloss noch hinzugefuegt werden:
:%s/^"OG(XX|B[LMS])".*\n//
oder mit \v (siehe ":h magic")
:%s/\v^"OG(XX|B[LMS])".*\n//
Mit den verschiedenen Modi komm ich noch nicht klar, welchen ich für was brauche.
Normal mode command (nothing) :help x
das ist der standard-modus. von hier aus gelangt man leicht in die anderen modi oder kann den text bearbeiten, allerdings nur mit short-cuts: "x"=loeschen, "{"=zum anfang das absatz springen, "i"=input-mode, ":"=command-mode etc.
Visual mode command v_ :help v_u
aehnlich wie normalmode, wobei zusaetzlich der text ueber den man sich bewegt, markiert wird.
Insert mode command i_ :help i_<Esc>
der modus, der einem langweiligen, gewoehnlichen (*gaehn*) texteditor am naechsten kommt. tippe "a" und es erscheint ein *trommelwirbel* "a".
Command-line command : :help :quit
hier wird z.b. mit regulaeren ausdruecken gesucht und ersetzt.
im normal-mode tippt man ":s/a/b/", wobei der doppelpunkt bloss den command-modus einleitet.
Command-line editing c_ :help c_<Del>
so, jetzt muss ich mich beeilen, muss gleich fort.
:h cmdline-editing
Vim command argument - :help -
die werden nur beim programmstart uebergeben, z.b. "vim -d file1 file2"
:h cmdline-arguments
Wie soll man denn die Hilfe bedienen? Ich hab jetzt einfach zB. usr_27.txt aus C:\Programme\Vim\vim70\doc in UltraEdit geöffnet ;-)
hihi. das im cmdline-modus, z.b.
:help fileformat (oder kurz :h fileformat)
:h :h
:h :s
:h CTRL-W
:h index
:h usr_27
prost
seth
gudn tach!
Kann ich das so simpel über das GUI machen wie unten in dem Screenshot?
weiss ich nicht, aber bestimmt.
Ne, geht nich! MIt dem GUI findet er nur "Wortwörtliches". Ich habe zB. vershentlich :%s/^"OG in das file gepastet und as find er dann auch! ;-)
Wo muß ich denn die Ausdrücke eingeben?
MfG
gudn tach!
MIt dem GUI findet er nur "Wortwörtliches". [...]
Wo muß ich denn die Ausdrücke eingeben?
ich kenne den grafischen vim nicht, weiss also nicht wie man das umstellen kann, aber der cmdline-modus sollte auf jeden fall funzen.
prost
seth