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/[ ^]if [/print
will print out the ifs
:g/[ ^]fi/print
will printout the fi
What I want to do is or the conditions
:g/[ ^]fi BIGFATOROPERATOR [ ^]fi/print
I have had success doing the following... but I feel I am working TOO HARD!
:call TripMatch('[ ^]*if [', 'else', 'fi[ $]')
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
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…