Go to beginning of line without opening new line in VI

For ages now I've used SHIFTO and SHIFT$ to move to the beginning and end of a line in vi.

However SHIFTO is more for opening a new line above the cursor.

Is there any command which just takes you to the start of a line?


Solution 1:

You can use ^ or 0 (Zero) in normal mode to move to the beginning of a line.

^ moves the cursor to the first non-blank character of a line
0 always moves the cursor to the "first column"

You can also use Shifti to move and switch to Insert mode.

Solution 2:

A simple 0 takes you to the beginning of a line.

:help 0 for more information

Solution 3:

Try this Vi/Vim cheatsheet solution to many problems.

For normal mode :
0 - [zero] to beginning of line, first column.
$ - to end of line

Solution 4:

You can use 0 or ^ to move to beginning of the line.
And can use Shift+I to move to the beginning and switch to editing mode (Insert).

Solution 5:

There is another way:

|

That is the "pipe" - the symbol found under the backspace in ANSI layout.

Vim quickref (:help quickref) describes it as:

N      |      to column N (default: 1)

What about wrapped lines?

If you have wrap lines enabled, 0 and | will no longer take you to the beginning of the screen line. In that case use:

g0

Again, vim quickref doc:

 g0   to first character in screen line (differs from "0"
      when lines wrap)