Question: If you look at the Terminal->Preferences->Settings->Keyboard pane it displays how some keyboard keys and combinations map to shell strings. 

The list seems really strange to me as it's missing a lot of combinations like Shift+F1 and it maps option+F1 and F6 to the same code. Also the codes shown look like ANSI escape sequences but the function key numbers (ones I checked) don't match up.

I'd like to find an explanation for these details and a reference for adding proper codes for missing combinations like Shift+F1. Thanks for your input

Answer: 
The mappings are different because Mac OS X is not a DOS, for which the web site you linked to was apparently written. The specific mappings were inherited from previous Unix/Linux terminal emulators, as is reflected in your options for what kind of terminal emulator Terminal.app you wish to appear:

![enter image description here](https://i.stack.imgur.com/xSZQw.png)

As you can see for example [here](http://aperiodic.net/phil/archives/Geekery/term-function-keys.html), mapping `F6` to `^[[17~` is widespread consensus among terminal emulators.

Terminal's `Shift-F5` to `Shift-F12` is equivalent to the VT220's `F13` to `F20`.

Terminal's `Opt-F1` to `Opt-F15` is equivalent to the VT220's `F6` to `F20`, i.e. option "shifts" 5 keys to the right.

I assume this mapping is the result of the desire both to be compatible with existing mappings, and to provide as close to a full 20-`F`-key keyboard as possible with only 12 or 15 F-keys on modern Macs.

---

If you don't like these particular mappings, it's easy to change them in the settings dialog you already mentioned. Remember that you can map to pretty much arbitrary input (which is actually a pretty nic(h)e way to do Typinator/TextExpander-like keyboard shortcuts in Terminal):

![enter image description here](https://i.stack.imgur.com/ODONW.png)

If you prefer editing in a plain-text editor, you can export a Terminal setting via the cog icon, edit it (it's XML), and import it again.
This is tricky, it's 2015 and there is still no simple answer for `Shift-F2`, which I need for Byobu on the remote Linux box.

I wrote this config for a Max OS X *Terminal.app*, which you can import, which enables `F1`-`F10` combinations with `Shift`, `Ctrl` and `Alt`.

<https://github.com/timothybasanov/terminal-app-function-keys>

To quote the page, here are examples of magic shortcuts you need to add to your *Terminal.app* if you want `Shift-F2` and friends to work:

```
F1:          \033OP
Shift-F1:    \033[1;2P
Ctrl-F1:     \033[1;5P
Alt-F1:      \033[1;3P
F10:         \033[20~
Shift-F10:   \033[20;2~
Shift-Left:  \033[1;2D
PgUp:        \033[5~
Alt-PgUp:    \033[5;3~
Delete:      \033[3~

```