>I have a text with many quotations, that I want to change the case. >Currently the text of the quote is in all caps. I want to change it to >capitalize only the first letter of each word. The text I want to change >can be either a single word, multiple words on a single line, or >multiple words on multiple line, as follows:
If you know the beginning/ending lines (absolute numbers, marks, etc.), you can do :'m,'ns/.*/\L&/gp marks 'm' and 'n' set previously :'m,'ns/.*/\u&/gp :10,50s/.*/\L&/gp absolute linenos 10 through 50 inclusive :10,50s/.*/\u&/gp etc. '&' is the matched pattern. "\L&" will take the matched pattern and lcase it all, then "\u&" will just ucase the initial letter of a word. So each respective pass will be WORDS TO INITCAP originally words to initcap after lcasing it all Words To Initcap after the initcap Someone here might have a more elegant way of doing it, but I've done it this way in the past for so long it's practically a macro to me. Fwiw: \L lcase everything \l lcase initial letter of each word \U ucase everything \u ucase initial letter of each word Hth.