command! -nargs=* -range Transform <line1>,<line2> call Transform(<f-args>) fun! Transform(old, new, ...) if a:0 let string = a:1 else let string = getline(".") endif let i = 0 while i < strlen(a:old) && i < strlen(a:new) execute "let string=substitute(string, '".a:old[i]."','".a:new[i]."','g')" let i = i + 1 endwhile if a:0 return string else call setline(".", string) endif endfun