Replacement Part of :substitute
Replacement part of the S&R has its own special characters which we are going to use to fix grammar:
# | Meaning | # | Meaning |
& | the whole matched pattern | \L | the following characters are made lowercase |
\0 | the whole matched pattern | \U | the following characters are made uppercase |
\1 | the matched pattern in the first pair of \(\) | \E | end of \U and \L |
\2 | the matched pattern in the second pair of \(\) | \e | end of \U and \L |
... | ... | \r | split line in two at this point |
\9 | the matched pattern in the ninth pair of \(\) | \l | next character made lowercase |
~ | the previous substitute string | \u | next character made uppercase |
Now the full S&R to correct non-capital words at the beginning of the sentences looks like
s:\([.!?]\)\s\+\([a-z]\):\1 \u\2:g
We have corrected our grammar and as an extra job we replaced variable number of spaces between punctuation and the first letter of the next sentence with exactly two spaces.
http://vimregex.com/#backreferences