Problem
You want to add i18n support to an existing project. One part of this is modifying all templates to use the {% trans "..." %} block around all hard-coded strings.
When you have a lot of templates, this gets pretty tedious.
Solution
Use Vim macros!
Macro 1 - Convert tag text
To convert
<h1>Welcome to my site</h1>
to
<h1>{% trans "Welcome to my site" %}</h1>
use the macro
vitc{% trans "" %}<ESC>4hp
which breaks down as:
- vit - select content inside the tag;
- c{% trans "" %} - change tag content to be {% trans "" %} while saving the original tag content to the anonymous register;
- <ESC>4hp - move the cursor to the first speech mark and paste the original tag contents. Note that <ESC> is one key-stroke, not five.
To record the macro, locate the cursor over a tag that you want to convert then start recording by pressing q twice (to record the macro to the named register q). Then type the characters detailed above and press q again to stop recording.
To apply the macro, again locate the cursor over a tag, or the text it contains, and type @q. This will save you a lot of key-strokes.
Macro 2 - Convert selected text
To convert
<p>See this image: <img src="/images/1.jpg" /> </p>
to
<p>{% trans "See this image:" %} <img src="/images/1.jpg" /> </p>
enter visual mode and select the text to convert (eg "See this image:") then use the macro
c{% trans "" %}<ESC>4hp
which is the same as the one above but without the tag text selection.
To summarise: Vim's macros are great - learn how to use them.