The main way to put text in your buffer in vi is insert. Several commands enter "insert" state: i insert text right here a insert text to the right of right here A insert text at the end of the line I insert text at the beginning of this line o insert text on a following blank line O insert text on a preceding blank line Insert state is terminated with the ESCape key. You can also terminate insert with ^C (intr) but that ABORTs the insert state, and your text is lost. Note that insert state IS line oriented, when you have finished inserting each line, that line is in the buffer to stay. Several control characters have special meaning to vi when you are inserting text, so they will cause actions rather than be inserted. Do not be alarmed, this kind of ragged non-parameteric functionality is common in vi. The following commands work within insert state: ^H erase last character ^W erase last word ^U erase this insert line \ quote next character ^V really really quote next character