Radare2 also comes with in vi mode that can be enabled by toggling scr.prompt.vi. The various keybindings available in this mode are:
• ESC - enter into the control mode
• i - enter into the insert mode
• j - acts like up arrow key
• k - acts like down arrow key
• a - move cursor forward and enter into insert mode
• I - move to the beginning of the line and enter into insert mode
• A - move to the end of the line and enter into insert mode
• ^ - move to the beginning of the line
• 0 - move to the beginning of the line
• $ - move to the end of the line
• h - move one character backward
• l - move one character forward
• x - cuts the character
• dw - delete the current word
• diw - deletes the current word.
• db - delete the previous word
• D - delete the whole line
• dh - delete a character to the left
• dl - delete a character to the right
• d$ - kill the text from point to the end of the line.
• d^ - kill backward from the cursor to the beginning of the current line.
• de - kill from point to the end of the current word, or if between words, to the end of the next word. Word boundaries are the same as forward-word.
• p - yank the top of the kill ring into the buffer at point.
• c - acts similar to d based commands, but goes into insert mode in the end by prefixing the commands with numbers, the command is performed multiple times.
If you are finding it hard to keep track of which mode you are in, just set scr.prompt.mode=true to update the color of the prompt based on the vi-mode.