Vim practical example
M Bellucci Jul 6
In my job, I had to open in a browser a set of similar URLs.
A sample URL
In this concrete case, I had to access 6 elements and each one in 6 different languages.
36 different URLs.
Open the browser and type every URL
This would be reaaaaaaally boring.
Write the sample URL
Then replicate this URL 5 times.
Write every element name
:1s/<element-name>/element1/ # scoped to line 1 replace <element-name> with element1 :<up_arrow> # show previous executed command :2s/<element-name>/element2/
Replicate this block 5 times once per lang-locale
ggy6jG # go to top, yank 6 lines down, go to bottom qq # start recording in register q o<esc> # insert blank line p # paste yanked block G # go to bottom q # stop recording
At this point, we have recorded
insert a new line and paste yanked block.
Let's repeat this 5 times.
5@q # execute register q 5 times
gg # Go to the top
For each block replace first lang-locale with
Create a macro for replacing one line and go to next line to replace.
qq # start recording :.s/<lang>.<locale>/en.us/ # scoped to current line replace <lang>.<locale> with en.us 7jq # go 7 lines down and stop recording 5@q # repeat this macro 5 more times once per each block.
Go to the second line and repeat the process with
2gg # go to second line
Repeate the process with
Remove every empty line.
:g/^$/d # apply d command to lines matching /^$/
We have built every possible URL.
Now we need to open them into default browser.
:%! xargs open # pass all lines as the argument to open command
The default browser will open all those URLs in different tabs.
(open command is present on mac-os. For Linux you should have a similar)
I hope you've enjoyed.
All comments are welcome!