Thomas7: gVIM, suchen & ersetzen, regex mit GUI?

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

  1. 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

    1. 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

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
      [HTML Design Constraints: Logical Markup]
      1. gudn tach!

        |  -> "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?

        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

        1. 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

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
          [HTML Design Constraints: Logical Markup]
    2. 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

      1. 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

    3. 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

      1. 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