:%s/" *\(begin\|end\|(\|)\|;;\) *"/" \1"/g :%s/\^ *"\\n"/\^ endl/g :%s/ *\^ *endl / /g :400,$s/^\([ \t]*\)\([a-z]*line .*\)/\1endl \^ \2/g :400,$s/-> *\([a-z]*line .*\)/-> endl \^ \1/g :400,$s/\([^l ] *\^ *\)\([a-z]*line \)/\1endl \^ \2/g :%s/(printer syntax)/( Str.replace_first (Str.regexp "\\n") "" (printer syntax) )/g :wq