:help case
nói:
To turn one line into title caps, make every first letter of a word
uppercase: >
: s/\v<(.)(\w*)/\u\1\L\2/g
Giải thích:
: # 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.
Phần mô hình có ý nghĩa này.
\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 caracters. \w* is
# shorthand for [a-zA-Z0-9_].
Kết quả hoặc một phần thay thế có ý nghĩa này:
\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
Kết quả:
ROPER STATE PARK
Roper State Park
Một thay thế cho chế độ rất kỳ diệu:
: % s/\<\(.\)\(\w*\)/\u\1\L\2/g
# Each capture group requires a backslash to enable their meta
# character meaning i.e. "\(\)" verses "()".
Cảm ơn bạn rất nhiều, đặc biệt là để giải thích mọi chi tiết! – keelar
@keelar. Bạn đang chào đón :) –
Tôi chỉ cần làm điều này và sử dụng một macro mà tôi lặp đi lặp lại và tôi biết có phải là một số cách tốt hơn nhưng tôi không bao giờ mặc dù regex. Điều đó thật tuyệt. Cảm ơn. –