I had to do an assignment on English hypocoristics (that is, nicknames) in my grad-level phonology class, and it was really fascinating. https://twitter.com/CWWilkie/status/1313897026329939968
The most common way to make a short form of a name in English is to start with the syllable with primary stress, take enough material to form a heavy syllable (that is, a syllable with a long vowel or a consonant after the vowel), and delete the rest.
Examples:
Jonathon > Jon
Elizabeth > Liz
Christopher > Chris
Deborah > Deb
Another method is to take a syllable (or sometimes multiple syllables) with secondary stress instead.

Elizabeth > Beth
Alexander > Alex
You can also take the stressed syllable, chop it off, and leave the rest of the name:

Christopher > Topher
Robert > Bert
Alfred > Fred
Jacob > Cob
One less common way is to simplify final consonant clusters, though this sometimes involves unpredictable vowel changes.

James > Jim
Charles > Chaz
Margaret > Mag/Meg
Katharine > Kit
Women's nicknames formed this way are often suffixed with -y:

Margaret > Mag > Maggie
Katharine > Kit > Kitty
Another less predictable way to form nicknames is to substitute consonants. There's a lot of variation with /k/ ~ /tʃ/ and /g/ ~ /dʒ/.

Richard > Rich > Rick
Margaret > Mag > Madge
But there's also some variation with /l/ and /r/, sometimes with vowel changes too.

Harry (or sometimes Henry) > Hal
Mary > Molly
There's also a lot of initial consonant substitution, though this also seems to be pretty unpredictable:

Richard > Rich > Rick > Dick
Robert > Rob > Bob
William > Will > Bill
Margaret > Meg > Peg
Sometimes consonants are added, and it's not always clear where they come from.

Edward > Ed > Ned
Edward > Ed > Ted
Some people hypothesize that Ned comes from a rebracketing of "mine Ed" (there you go, @joshuajfriedman), but I'm not sure if there's any hard evidence for that. Ted can also be a short form of Theodore, so perhaps there's some influence there.
One thing I forgot to mention earlier is that the method of truncating the syllable that has primary stress also has a weird constraint that you can't end with /θ/.

Matthew > Matt
Katharine > Kat
Nathan > Nate
Arthur > Art
Though I have an aunt who goes by Kath, so that constraint isn't entirely universal. But sometimes it applies to names formed by truncating the syllable with secondary stress:

Elizabeth > (Bett) > Betty/Betsy
There are also a few names formed with a /k/ diminutive.

John > Jankin (an older form) > Jackin > Jack

Hank was originally a diminutive of John (probably by way of Johann) that then came to be applied to Henry.
I though Ned could apply to a few different names that start with Ed. http://Behindthename.com  says it's a diminutive of Edward or Edmund. https://twitter.com/JuneCasagrande/status/1313906351475630081
Yeah, this does lend credence to the rebracketing theory, though it's also still possible that it was common to insert /n/ before a short form starting with a vowel. https://twitter.com/byu_librarian/status/1313906984974872582
There are probably other less common methods of forming nicknames in English that I'm forgetting. If there's an English nickname that's always puzzled you, let me know, and I'll see if I can figure it out. (Though I'm not a real expert—like I said, this was just one assignment.)
A combination of several of the methods previously described. Start with the stressed syllable, simplify the consonant cluster, change the vowel for some weird reason, and then change the initial consonant some other weird reason. https://twitter.com/SerennaT/status/1313910184838934530
You can follow @ArrantPedantry.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: