Est-il décent de Vim regexp OU une commande? Quelle est la meilleure façon de trouver incompatibles si d'autre?

J'ai quelques désadaptation si et fi des instructions dans un script. Je tiens à dépouiller de tout, mais le si de l'autre et de l'if. Juste pour que je puisse voir la structure. Pourquoi suis en train de travailler si DUR avec un éditeur puissant? J'ai besoin d'un BIGFATOR opérateur pour les regexp ou certains l'epiphanie, qui a m'a échappé... je ne m'inquiète pas pour pontification sur les expressions régulières juste quelque chose de pratique de travail dans VIM7.2.

:g/[ ^\t]si [/imprimer

permet d'imprimer les ifs

:g/[ ^\t]fi/imprimer

sera imprimé le fi

Ce que je veux faire est ou les conditions

:g/[ ^\t]fi BIGFATOROPERATOR [ ^\t]fi/imprimer

J'ai eu du succès en procédant de la manière suivante... mais je sens que je suis en train de travailler TROP DUR!

:appel TripMatch('[ ^\t]*si [', 'else', 'fi[ \t$]')

fonction! TripMatch(str1, str2, str3)

laisser var1 = a:str1

laisser var2 = a:str2

laisser var3 = a:str3

laissez max = ligne("$")

si n = 1

for n in range (1, max)

laisser currentline = getline(n)

if currentline =~? var1

   echo n "1:" currentline

else

   if currentline =~? var2

      echo n "2:" currentline

   else

      if currentline =~? var3

         echo n "3:" currentline

      else

         let foo = "do nothing"

      endif

   endif

endif     

finpour

endfunction

InformationsquelleAutor ojblass | 2009-03-25