Your IP : 216.73.216.48
" Defines a "match" alias, which moves the cursor to a matching word. The
" lists of matching words can be easily changed.
" Contributed by Ian Utley (iu@apertus.uk.com)
alias match {
"Move to the line where the pairing keyword is located
local a b d x y i nowrapscan magic magicchar=^$.[* noignorecase
"x and y are lists of matching words -- we'll seek forward from x words
"and backward from y words. The words listed here are appropriate for
"Unix shell scripts.
set x="if/then/case/do/begin/repeat" y="fi/else/esac/done/end/until"
let a=current("word")
if (a == "")
then error Cursor is not on a word
set b=""
while b=="" && x!="."
do {
if a==dirfile(x)
then {
let b=dirfile(y)
set d=forward
}
if a==dirfile(y)
then {
let b=dirfile(x)
set d=backward
}
let x=dirdir(x)
let y=dirdir(y)
}
if ( b=="" )
then error (a) is not a matchable keyword
mark c
set i=1
if (d=="forward")
then {
while ( i != 0 )
do {
set i=0
try eval /\<(b)\>
else {
" Failed to locate a match
'c
error No matching (b) located
}
mark d
eval 'c,'d global /\<(a)\>/ let i=i+1
eval 'c,'d global /\<(b)\>/ let i=i-1
}
}
if (d=="backward")
then {
while ( i != 0 )
do {
set i=0
try eval ?\<(b)\>
else {
" Failed to find a match
'c
error No matching (b) located
}
mark d
eval 'd,'c global /\<(a)\>/ let i=i+1
eval 'd,'c global /\<(b)\>/ let i=i-1
" global command has moved cursor back to 'c
'd
}
}
}