(45) Vi |
marqueurs et buffers
substitution de texte
macros
commandes externes
| marqueurs et buffers | [haut] |
Les marqueurs sont au nombre de 26 et sont représentés par les lettres minuscules uniquement.
| ma | marque la position du curseur avec le marqueur a |
| 'a | (quote a) retourne sur le premier caractère non blanc de la ligne contenant le marqueur a |
| `a | (backquote a) retourne à la position exacte du marqueur a |
Les marqueurs permettent de sélectionner des lignes contigues.
| d'a | supprime de la ligne contenant le marqueur a à la ligne contenant le curseur. On peut retrouver le texte avec les commandes p ou P |
| y'a | copie de la ligne contenant le marqueur a à la ligne contenant le curseur. On peut retrouver le texte avec les commandes p ou P |
Les buffers permettent de conserver des lignes contigues dans des espaces nommés et d'en disposer ensuite à volonté. Les buffers sont au nombre de 36 dont 26 sont controlés par l'utilisateur et sont représentés par les lettres minuscules ou majuscules. Les autres sont représentés par les chiffres.
| "ay'b | sauve dans le buffer a le texte de la ligne contenant le marqueur b à la ligne contenant le curseur. On peut retrouver le texte avec les commandes "ap ou "aP |
| "a3y | sauve dans le buffer a la ligne contenant le curseur et les deux lignes suivantes. On peut retrouver les trois lignes avec les commandes "ap ou "aP |
| substitution de texte | [haut] |
| :1,5s/foo/bar/gc | remplace dans les lignes 1 à 5, les occurrences de foo par bar et demande la confirmation avant chaque remplacement. Le séparateur (ici /) peut être changé |
| :1,$s... ou :%s... | effectue la substitution dans tout le fichier |
| :.,.+3s... | effectue la substitution dans la ligne courante et dans les trois lignes suivantes |
| :'a,$s... | effectue la substitution dans la ligne marquée par le marqueur a et dans toutes les lignes suivantes |
| :'a,'a+3s... | effectue la substitution dans la ligne marquée par le marqueur a et dans les trois lignes suivantes |
| macros | [haut] |
Les caractères de contrôle doivent être préfixés par ^V (Ctrl-V). Le retour chariot est inséré par la séquence ^V^M.
| :map X iXXX^[ | (^[ représente ESC inséré par la séquence Ctrl-V ESC) défini une macro qui insère trois caractères X et retourne en mode commande. Pour déclencher cette macro, il faut utiliser la touche « X » depuis le mode commande |
| :map! SNCF Société Nat... | idem mais le déclenchement se fait en utilisant la séquence « SNCF » depuis le mode insertion |
| :abbr SNCF Société Nat... | idem mais le déclenchement se fait lorsque la séquence « SNCF » est entourée de blancs |
| :map | liste les définitions des macros de mode commande |
| :map! | liste les définitions des macros de mode insertion |
| :abbr | liste les définitions des abbréviations de mode insertion |
| :unmap X | destruction de la macro « X » |
| :unmap! SNCF | destruction de la macro « SNCF » |
| :unabbr SNCF | destruction de l'abbréviation « SNCF » |
| commandes externes | [haut] |
Les commandes externes permettent de visualiser le résultat d'une commande sans sortir de l'éditeur ou de remplacer tout ou partie du texte édité par le résultat d'une commande.
| :!ls | lance la commande externe (ici ls) et visualise le résultat. Le fichier en cours d'édition n'est pas modifié |
| :1,5!ls | remplace les lignes 1 à 5 par le résultat de la commande externe |
| :%awk '{print $5}' | Toutes les lignes (%) du fichier en cours d'édition sont filtrées par la commande externe et remplacées par le résultat de cette commande |

