How do Vim's Control-O and Control-I work?

What do they do, and how do you use them? Any tips / tricks would also be appreciated.


In insert mode, Ctrl-o escapes user to do one normal-mode command, and then return to the insert mode. The same effect can be achieved by <ESC>ing to normal mode, doing the single command and then entering back to insert mode. Ctrl-i is simply a <Tab> in insert mode.

In normal mode, Ctrl-o and Ctrl-i jump user through their "jump list", a list of places where your cursor has been to. The jumplist can be used with the quickfix feature, for example to quickly enter to a line of code containing errors.