https://stackoverflow.com/questions/17440659/capitalize-first-letter-of-each-word-in-a-selection-using-vim
\<
matches the start of a word.
matches the first character of a word\u
tells Vim to uppercase the following character in the substitution string(&)
&
means substitute whatever was matched on the left-hand sideg
means substitute all matches, not only the first
=======================================================
:help case
says:
To turn one line into title caps, make every first letter of a word
uppercase:
: s/\v<(.)(\w*)/\u\1\L\2/g
Explanation:
: # Enter ex command line mode.
space # The space after the colon means that there is no
# address range i.e. line,line or % for entire
# file.
s/pattern/result/g # The overall search and replace command uses
# forward slashes. The g means to apply the
# change to every thing on the line. If there
# g is missing, then change just the first match
# is changed.
The pattern portion has this meaning:
\v # Means to enter very magic mode.
< # Find the beginning of a word boundary.
(.) # The first () construct is a capture group.
# Inside the () a single ., dot, means match any
# character.
(\w*) # The second () capture group contains \w*. This
# means find one or more word characters. \w* is
# shorthand for [a-zA-Z0-9_].
The result or replacement portion has this meaning:
\u # Means to uppercase the following character.
\1 # Each () capture group is assigned a number
# from 1 to 9. \1 or back slash one says use what
# I captured in the first capture group.
\L # Means to lowercase all the following characters.
\2 # Use the second capture group
Result:
ROPER STATE PARK
Roper State Park
No comments:
Post a Comment