Saturday, July 10, 2021

Re: Seach and follow with keystrokes or a macro





------ Original Message ------
From: "Gua Chung Lim" <gua.chunglim@gmail.com>
To: vim_use@googlegroups.com
Sent: Saturday, 10 Jul, 2021 At 14:23
Subject: Seach and follow with keystrokes or a macro

Hi,

I have been using vim for years, I usually use @ macros. I have a question hard to explain. Assuming I have a text file ...

keyword: toggle CASE Retentive Case
keyword: TOGGLE case Retentive Case
keyword: togGLE CASE Retentive Case
...

And I want to toggle the case of some letters after ^keyword:.
Things I usually do is ...
/^keyword
then do the following keystrokes ...
9lv10l~0
And for the rest of file I can simply do ...
n.
to find the next match (n), and repeat the keystrokes (.)

Certainly, I can assign 9lv10l~0 to a macro. But what if I have 1,000+ lines like this, I would never want to use the macro for every line containing "^keyword". Is there anyway to search and replace in a single colon command? Like ...

:%s/^keyword/do_keystrokes/g
or
:%s/^keyword/do_a_macro/g

Thanks in advance,

--
Gua Chung Lim
Hi

as you say, the task is not terribly clear.

Once you've done a

/^keyword

you can find further instances with

n

It is not clear if you have some rule for the case required for various words. I notice that case occurs with different capitalisation where it hasn't obviously been mangled. If there's no rule, you're stuck with going through them all. The usual swap case is just

~

So you can go through finding the next keyword with n and then right arrowing or tilding to get that line right.

If on the other hand you can devise a rule for the capitalization, you can devise a set of commands such as

:g/^keyword/s/toggle\c/TOGGLE/
:g/^keyword/s/CASE\c/CASE/g
:g/^keyword/s/CASE$/Case/

which wd change all the toggles and cases to upper case, and then change all CASEs at the end of line to mixed case. The g command limits the change to lines starting keyword (lower case).

regards - Chris Willis
Nothing ever exists entirely alone without dualities.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/YOmfbxPeLlbqmz2M%40gmail.com.

No comments:

Post a Comment