Moving the cursor
h (or left arrow key) move the cursor left.
l (or right arrow key) move the cursor right.
j (or down arrow key) move the cursor down.
k (or up arrow key) move the cursor up.
[Ctrl]+f move the cursor one page forward .
[Ctrl]+b move the cursor one page backward.
^ move cursor to the first non-white character in the current line.
$ move the cursor to the end of the current line.
G go to the last line in the file.
nG go to line number n.
[Ctrl]+G display the name of the current file and the cursor position in it.

Entering editing mode
i insert new text before the cursor.
a append new text after the cursor.
o start to edit a new line after the current one.
O start to edit a new line before the current one.

Replacing characters, lines and words
r replace the current character (does not enter edit mode).
s enter edit mode and substitute the current character by several ones.
cw enter edit mode and change the word after the cursor.
C enter edit mode and change the rest of the line after the cursor.

Copying and pasting
yy copy (yank) the current line to the copy/paste buffer.
p paste the copy/paste buffer after the current line.
P Paste the copy/paste buffer before the current line.

Deleting characters, words and lines
All deleted characters, words and lines are copied to the copy/paste
buffer.
x delete the character at the cursor location.
dw delete the current word.
D delete the remainder of the line after the cursor.
dd delete the current line.

Looking for strings
/ string find the first occurrence of string after the cursor.
? string find the first occurrence of string before the cursor.
n find the next occurrence in the last search.

Replacing strings
Can also be done manually, searching and replacing once, and then using
n (next occurrence) and . (repeat last edit).
n,ps/str1/str2/g between line numbers n and p, substitute all (g:
global) occurrences of str1 by str2.
1,$s/str1/str2/g in the whole file ($: last line), substitute all
occurrences of str1 by str2.

Applying a command several times – Examples
5j move the cursor 5 lines down.
30dd delete 30 lines.
4cw change 4 words from the cursor.
1G go to the first line in the file.
Misc
[Ctrl]+l redraw the screen.
J join the current line with the next one
u undo the last action

Going further
vi has much more flexibility and many
more commands for power users!
It can make you extremely productive
in editing and creating text.
Learn more by taking the quick tutorial:
just type vimtutor.

Overview

If you’re ever needed to compile the Linux Kernel on a Raspberry Pi, you’ve probably noticed that it takes a long time. We sure have.

If you have a desktop computer or a laptop with decent hardware specs, it seems like there ought to be an easy way to use all that processing power to generate a new kernel for your Pi, but it can be tricky to figure out the specifics. Enter theAdafruit Pi Kernel-o-Matic, which uses Vagrant to run a virtual machine pre-configured for compiling kernels and produces a package suitable for installation on a Raspbian machine.

Vagrant is for “creating and configuring virtual development environments”. What does that mean? Well, really, it’s a simple way to set up a virtual machine (VM) running an operating system of your choice. It uses VirtualBox to run VMs, and works on OS X, Windows, and Linux.

Overview

EDITOR’S NOTE: Hiya, Lady Ada here to introduce this tutorial! If you’re starting down the path to learning about electronics or computers, you may have noticed or heard about “Linux” – as in “this dev board is linux-based” or “this wearable runs linux” or “I wrote a linux script to control the barcode scanner”

And you might be wondering Well, what is this “Linux” anyhow? Does it matter to me? and then maybe you asked someone and you got a long rant about stuff called kernels and bashed shells and now you’re wondering if it’s corn-related or is some sort of crab.

Being that this question and confusion is inevitable, and we’re getting so many people asking about this mysterious Linux, we at Adafruit thought we’d write up a series of tutorials to help you understand what linux is, when you want linux and how to use it when you do.