Les commandes, qui doivent toutes être terminées par un RETURN et commencer par un :, sont très nombreuses. La plupart acceptent un argument numérique qui permet de répéter n fois l'opération (par exemple 5d détruit cinq lignes depuis la position courante). En voici un échantillon:
Si l'éditeur refuse une opération (par exemple il refusera la commande q si le texte courant n'est pas sauvé), on peut forcer l'exécution par un point d'exclamation ajouté (par exemple q!). De plus, en tapant directement le numéro d'une ligne, on peut s'y déplacer. Cela est également possible d'ailleurs en lançant l'éditeur avec un argument commençant par + suivi d'un numéro de ligne.
Voici quelques exemples de commandes complexes (il faut toujours ajouter un : avant et un RETURN après). On notera que $ représente la dernière ligne et . la ligne courante dans les spécifications d'adresse de ligne.
Notez que le remplacement est séparé par un caractère, ici /, mais qui peut être quelconque. Il faut également faire attention car certains caractères, notamment ., *, [ et ] ont des significations particulières, il faut les précéder du caractère d'échappement (voir section regexp). Ce dernier doit être doublé s'il doit être utilisé tel quel. Voyez également la signification de CTRL-V qui permet d'entrer un caractère de contrôle.
Certaines opérations se font sans : ni RETURN, celles-ci sont donc exécutées en mode déplacement.
Noter que pour rechercher des chaînes, on doit utiliser la construction /chaîne puis RETURN, ceci sans : initial. Voyez l'état ic décrit plus haut.