After the last two days, let’s see a less brain melting, but related topic, how to remove lines with given pattern from a file.
It’s not something I use daily, but with rust code, I use it a lot. Around
tests, sometimes there are #[ignore lines to tell the system to ignore this
test function. When I’m done I want to remove all of those from the test file,
and the easiest way to use vim.
The :global command executed an Ex (: commands) command on the lines within
the provided range that matches a pattern. In this case we want to run d on
all lines that matches ^#\[ignore, so the command will be :g/^#\[ignore/d.
That d is not a regular expression flag there, it’s a command.
But we can do it better, we don’t want those lines to be on our clipboard, and
luckily :delete has an optional argument for the target register.
:[range]d[elete] [x] Delete [range] lines (default: current line)
[into register x].
That’s perfect, we can use the _ “spam” register to keep all our registers
clean. Our final command will be :g/^\[ignore/d _.