/MODE INSERTION/ **i** mode insertion avant le curseur **I** mode insertion au debut de la ligne **a** mode insertion apres le curseur **A** mode insertion a la fin de la ligne **o** mode insertion a la ligne **O** mode insertion a la ligne du dessus **3iTEXT** ecrira trois fois TEXT **ctrl r** * colle depuis le clipboard en mode insertion /COMMANDES/ **:w** enregistrer **:q** quitter **:wq** ou **ZZ** enregister et quitter **:q!** force a quitter **:** mode commande **work with multiple files :** **:e** open a new file in new buffer **:b ** roll between opened files **:set hidden** add that to be able to cancel changes **:ls** list buffer oppened **:bp** go to previous buffer **:bn** go to next buffer **:bd** delete buffer **:b#** switch to last edited buffer **:%y+** copie toutes les lignes DANS LE CLIPBOARD **:set paste** copier sans les effets des tabulations **: up** affiche les dernieres commandes **:set number** ecrit les numeros de lignes **:set syntax=ON** active la coloration du texte **:set tabstop=4** montre les tabulations (meme existantes) de longueur 4 **:set colorcolumn=80** ajoute une ligne verticale a la colone 80 **transformer des espaces en tab :** **:set ts=2** ts pour tabstop, 2 si 2 espaces **:set noet** noet pour noexpandtab == use tabs no spaces **:%retab!** retabule tous le fichier **:set autoindent** copie l'indentation de la ligne precedente **:source ~/.vimrc** actualise le fichier vimrc sans redémarrer vim **:sav newname** save as with a new name **:!rm oldname** or **:!rm #** to delete the old copy **:sp** split windows (**** to navigate) **:vsp** split verivally **:sp filename** open a new or already existing filename in split mode **:sp %:h/filename** open new file in the same directory **%** refers to the current directory **:h** current directory minus file name and slash **:colo** active un systeme de coloration a choisir parmis : -- darkblue -- blue -- default -- delek -- desert -- -- elflord -- evening -- koehler -- morning -- -- murphy -- pablo -- peachpuff -- ron -- shine -- -- slate -- torte -- zellner -- (pour le modifier de manniere permanente : - pour l'utilisateur courant: ouvrir ou creer le fichier ~.vimrc et ajouter dedans: colo "nom du jeu de couleur"; - pour tous les utilisateurs: ouvrir le fichier /etc/vim/vimrc et y ajouter: colo "nom du jeu de couleur") /MODE VISUEL/ **v** mode visuel, selectionne avec le deplacement du curseur **v** **:s/o/n** remplace la premiere occurence par ligne en mode visuelle **v :s/o/n/g** remplace toutes les selections de chaque ligne **v :s/o/n/gc** demande confirmation (y:yes, n:no, a:all remaining, q:quit, l:last) /MODE REMPLACEMENT/ **R** mode remplacement (esc pour sortir) /MODE VISUAL BLOCK/ **ctrl v** passe en mode remplacement 1-mettre le curseur au debut d'un ligne a commenter 2-passer en visual block mode 3-avec les fleches descendre jusqu'a la derniere ligne 4-appuyer sur shift+i pour passer en mode insertion 5-inserer le.s signe.s de commentaire (par exemple: //) 6-appuyer sur esc (ttes les lignes vont se commenter) /MODE INTERACTIF/ **esc** quitte le mode insertion pour rentrer en mode interactif **x** supprime une lettre **r** remplace une lettre (rs remplace la lettre par s) **u** annuler **0** et **$** debut et fin de ligne **gg** et **G** aller a la premiere et derniere ligne **w** avancer le curseur au debut du mot suivant **b** reculer le curseur au debut du mot actuel **e** avancer le curseur a la fin du mot actuel **5G** aller a la ligne 5 **5g up/down** va 5 lignes up ou down **g,** va a la position du curseur avant la derniere modification **f** va au prochain signe demandé, par exemple "fa" va au prochain a **ctrl r** refaire **ctrl r 0** colle la derniere selection copiee avec y **ctrl n** auto-completion **dd** coupe une ligne **dw** coupe du curseur a la fin du mot **diw** coupe le "inner" mot **bde** pareil (begining delete end) **bdw** pareil mais en mangeant en plus l'espace en trop avec le mot suivant **d0** coupe du curseur jusqu'au debut de ligne **d$** coupe du curseur jusqu'a la fin de ligne **yy** copie la ligne **p** colle une ligne **.** repete la derniere commande **"ayy** copie la ligne dans le buffer a **"ap** colle la ligne du buffer a **g up/down** go a la ligne du dessous meme quand c la meme ligne en wrap **gUU** passe la ligne en uppercase **guu** passe la ligne en lowercase **bgUw** change le mot en uppercase **~** change casse du caractere sous le cursor * va a la prochaine occurence du mot sous le curseur **q:** affiche les dernieres commandes **==** rétablit la bonne indentation pour la ligne **=G** rétablit la bonne indentation pour toute la page /REMPLACER/ **:s/old/new** remplace la 1ere occurence de ancien par nouveau **:%s/old/new** remplace toutes les occurences **:s/o/n/gi** i veut dire case insensitive **:s/A\zsB\zeC/X** remplace ABC par AXC **:s/A\zs[0-9]** * **\zeC/#\0@** remplace A865C par A#865@C, ou A123C par A#123@C replacement : **/old** va a la premiere prochaine occurence de 'old' **n** va a la prochaine occurence **:s//new** remplace 'old' par 'new' **N** va a la precedente occurence **&** repete la substitution **u** annule la deniere substitution etc... replacement2: **vim old %** va a la toute premiere occurence de 'old' **:s/old/new** remplace 'old' par 'new' **:cn** va a la prochaine occurence **&** repete la substitution **:p** va a la precedente occurence **u** annule la derniere sunstitution etc... **command! Name %s//** a écrire dans le fichier ~/.vimrc, créer une fonction **Name** (tjrs avec une majuscule) qui s'execute quand on l'appel. => **:command! Name %s/a/b %s/A/B** <=> grace à on peut écrire plusieurs fonctions a la suite **function! Test()** dans ~/.vimrc définit une fonction qui execute plusieurs commandes. Il faut les appeler avec :exec Test(), le ! est tres important pour que la fonction se réecrive a chaque fois, sinon conflit