Question: I sometimes need to write the whole alphabet `abcd…z` and I hate typing it letter by letter in Vim's insert mode. Does there exist any method to do this more efficiently?

I know about the `ga` command which gives me the ascii code of the character where the cursor is … but don't know anything about how to mix it with my standard solution to type numbers from 1 to (for example) 5000: `a1ESCqqyyp^Aq4998@q` …

Answer: 
If your shell does brace expansion this is a pretty elegant solution:

```
:r !printf '\%s' {a..z}

```

[`:read!`](http://vimdoc.sourceforge.net/htmldoc/insert.html#:read!) reads the output of an external command into the current buffer. In this case, it reads the output of the shell's `printf` applied to `{a..z}` after it's been expanded by the shell.
First, `set nrformats+=alpha`.

Then:

```
ia<ESC>Y25p<CTRL-V>}g<CTRL-A>k26gJ

```

Which means:

* `ia` insert the initial `a`
* `Y25p` yank the `a` and duplicate it on 25 lines
* `<CTRL-V>` go into visual block mode
* `}` go to the last character at the end of the current paragraph
* `g<CTRL-A>` incrementally increase each alphabetic character (see `help v_g_CTRL-A`)
* `k` go up one line
* `26gJ` join 26 lines without inserting or removing any spaces

Which leads to:

```
abcdefghijklmnopqrstuvwxyz

```