I have some mismatching if and fi statements in a script. I would like to strip out everything but the if's else's and fi's. Just so I can see the structure. Why am working so HARD with such a powerful editor? I need a BIGFATOR operator for regexp or some epiphany that has eluded me... I don't care for pontification on regular expressions just something practical working in VIM7.2.
:g/[ ^\t]if [/print
will print out the ifs
:g/[ ^\t]fi/print
will printout the fi
What I want to do is or the conditions
:g/[ ^\t]fi BIGFATOROPERATOR [ ^\t]fi/print
I have had success doing the following... but I feel I am working TOO HARD!
:call TripMatch('[ ^\t]*if [', 'else', 'fi[ \t$]')
function! TripMatch(str1, str2, str3)
let var1 = a:str1
let var2 = a:str2
let var3 = a:str3
let max = line("$")
let n = 1
for n in range (1, max)
let 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
endfor
endfunction