« Raccourcis Vim » : différence entre les versions

De Justine's wiki
Aller à la navigation Aller à la recherche
(Page créée avec « = Raccourcis Vim les plus courants = == Modes == *Interactif : esc *Insertion : i *Commande : : depuis le mode interactif *Remplacement : R <blockquote> Les command... »)
 
 
(14 versions intermédiaires par la même utilisatrice non affichées)
Ligne 1 : Ligne 1 :
[[Category:linux]]
= Raccourcis Vim les plus courants =


= Raccourcis Vim les plus courants =
*Aide de Vim&nbsp;:&nbsp;:help


== Modes ==
== Modes ==


*Interactif : esc  
*Interactif&nbsp;: esc  
*Insertion : i  
*Insertion&nbsp;: i  
*Commande : : depuis le mode interactif  
*Commande&nbsp;:&nbsp;: depuis le mode interactif  
*Remplacement : R  
*Remplacement&nbsp;: R  
<blockquote>
<blockquote>
Les commandes précédées de : se font en mode commande, c'est à dire en écrivant : suivis de la commande depuis le mode interactif
Les commandes précédées de&nbsp;: se font en mode commande, c'est à dire en écrivant&nbsp;: suivis de la commande depuis le mode interactif
</blockquote>  
</blockquote>  
== Déplacements ==
== Déplacements ==


*Début de ligne : 0  
*Début de ligne&nbsp;: 0  
*Fin de ligne : $ (ou fin)  
*Fin de ligne&nbsp;: $ (ou fin)  
*De mots en mot : w  
*De mots en mot&nbsp;: w  
*Sauter vers une ligne : 7G pour aller à la ligne 7  
*Sauter vers une ligne&nbsp;: 7G pour aller à la ligne 7  


== Sauvegarde ==
== Sauvegarde ==


*Sauvegarder : :w  
*Sauvegarder&nbsp;:&nbsp;:w  
*Quitter : :q  
*Quitter&nbsp;:&nbsp;:q  
*Forcer : :!  
*Forcer&nbsp;:&nbsp;:!  
*Sauvegarder et quitter en forcant : :wq!  
*Sauvegarder et quitter en forcant&nbsp;:&nbsp;:wq!  
 
&nbsp;


== Édition ==
== Édition ==
<blockquote>
<blockquote>
Les opérations d'effacement ou de collage peuvent être précédées d'un chiffre pour les faire plusieurs fois : 3x supprimera 3 caractères
Les opérations d'effacement, d'insertion&nbsp; ou de collage peuvent être précédées d'un chiffre pour les faire plusieurs fois&nbsp;: 3x supprimera 3 caractères
</blockquote>  
</blockquote>  
*Effacer des lettres : x (un carctère)  
 
*effacer un mot : dw  
=== Effacement ===
*effacer/couper une ligne (la ligne est mise en mémoire) : dd  
*Effacer des lettres&nbsp;: x (un carctère)  
*Supprimer le début de la ligne : d0  
*effacer un mot&nbsp;: dw  
*Supprimer la fin de la ligne : d$  
*effacer/couper une ligne (la ligne est mise en mémoire)&nbsp;: dd  
*copier la ligne en mémoire : yy  
*Supprimer le début de la ligne&nbsp;: d0  
*Coller (la ligne se colle après le curseur) : p  
*Supprimer la fin de la ligne&nbsp;: d$  
*remplacer une lettre : r[nouvelle lettre]  
*Effacer du curseur jusqu'à la ligne 75 : d75G
*Annuler la dernière opération : u  
 
*Annuler une annulation : Ctrl + R  
=== Copier, annuler, insérer ===
*copier la ligne en mémoire&nbsp;: yy  
*Coller (la ligne se colle après le curseur)&nbsp;: p  
*remplacer une lettre&nbsp;: r[nouvelle lettre]  
*Annuler la dernière opération&nbsp;: u  
*Annuler une annulation&nbsp;: Ctrl + R  
*Insérer une ligne avant la ligne du curseur&nbsp;: O
*Insérer une ligne après celle du curseur&nbsp;: o
 
=== Indenter un bloc ===
<nowiki>
Esc. #Mode normal
v #Passer en visuel
j #Une fois par ligne
> #Pour indenter
< #Pour désindenter
</nowiki>


== Fonctions avancées ==
== Fonctions avancées ==


*Chercher un mot depuis le curseur: / (n pour avancer dans les occurences, N pour reculer)  
*Chercher un mot depuis le curseur: / (n pour avancer dans les occurences, N pour reculer)  
*Chercher un mot depuis le début du fichier : ?  
*Chercher un mot depuis le début du fichier&nbsp;:&nbsp;?  
*Fusionner des fichiers (à partir du curseur): :r /chemin/du/fichier  
*Fusionner des fichiers (à partir du curseur):&nbsp;:r /chemin/du/fichier  
*Lancer une commande externe : :!  
*Lancer une commande externe&nbsp;:&nbsp;:!  


=== Remplacement de texte ===
=== Remplacement de texte ===
Ligne 51 : Ligne 71 :
"ancien" est le texte qui est là et que nous voulons remplacer, par "nouveau" qui est le nouveau texte
"ancien" est le texte qui est là et que nous voulons remplacer, par "nouveau" qui est le nouveau texte
</blockquote>  
</blockquote>  
*Remplacer la première occurence de la ligne : :s/ancien/nouveau  
*Remplacer la première occurence de la ligne&nbsp;:&nbsp;:s/ancien/nouveau  
*Remplacer toutes les occurences de la ligne : :s/ancien/nouveau/g  
*Remplacer toutes les occurences de la ligne&nbsp;:&nbsp;:s/ancien/nouveau/g  
*Remplacer toutes les occurences dans les lignes numéro # à # : :#,#s/ancien/nouveau/g  
*Remplacer toutes les occurences dans les lignes numéro # à #&nbsp;:&nbsp;:#,#s/ancien/nouveau/g  
*Remplacer les occurences dans toout le fichier : :%s/ancien/nouveau/g  
*Remplacer les occurences dans toout le fichier&nbsp;:&nbsp;:%s/ancien/nouveau/g  


== Split d'écran ==
== Split d'écran ==
Ligne 60 : Ligne 80 :
Par défaut, le split ouvre le fichier une seconde fois pour être à deux endroits de celui-ci. Sinon il faut faire <code>:sp autrefichier</code>
Par défaut, le split ouvre le fichier une seconde fois pour être à deux endroits de celui-ci. Sinon il faut faire <code>:sp autrefichier</code>


*Découper l'écran horizontalement : :sp  
*Découper l'écran horizontalement&nbsp;:&nbsp;:sp  
*Découper l'écran verticalement : :vsp  
*Découper l'écran verticalement&nbsp;:&nbsp;:vsp  
*Raccourcis en écran splitté:  
*Raccourcis en écran splitté:  
**ctrl + w : naviguer de viewport en viewport  
**ctrl + w&nbsp;: naviguer de viewport en viewport  
**ctrl+w puis h, j, k, ou l (ou flèches): se déplacer vers un viewport spécifique  
**ctrl+w puis h, j, k, ou l (ou flèches): se déplacer vers un viewport spécifique  
**ctrl +w puis + ou - : agrandir ou rétrecir le viewport actuel (nombre de lignes)  
**ctrl +w puis + ou -&nbsp;: agrandir ou rétrecir le viewport actuel (nombre de lignes)  
**ctrl + w puis = : égalise les viewports actuels  
**ctrl + w puis =&nbsp;: égalise les viewports actuels  
**ctrl + w puis r ou R : Inverser la position des viewports   
**ctrl + w puis r ou R&nbsp;: Inverser la position des viewports   
 
&nbsp;


== Options ==
== Options ==
Ligne 73 : Ligne 95 :
Les options modifiées après le lancement de Vim seront oubliées dès que l'on refermera celui-ci.
Les options modifiées après le lancement de Vim seront oubliées dès que l'on refermera celui-ci.


*Ouvrir une option : :set [option]  
*Ouvrir une option&nbsp;:&nbsp;:set [option]  
*Désactiver une option : :set no[option]  
*Désactiver une option&nbsp;:&nbsp;:set no[option]  
*Donne un valeur : :set [option] = [valeur]  
*Donne un valeur&nbsp;:&nbsp;:set [option] = [valeur]  
*Connaître l'état d'une option : :set [option]?  
*Connaître l'état d'une option&nbsp;:&nbsp;:set [option]?  
*Aide sur une option&nbsp;:&nbsp;:help [option]


Les options peuvent être modifiées "définitivement" dans le fichier ~/.vimrc; on en trouve un exemplaire dans /etc/vim
Les options peuvent être modifiées "définitivement" dans le fichier ~/.vimrc; on en trouve un exemplaire dans /etc/vim
Ligne 82 : Ligne 105 :
Quelques options:
Quelques options:


*coloration syntaxique : syntax on/off  
*coloration syntaxique&nbsp;: syntax on/off  
*Couleur adaptée à un fond sombre : set background=dark  
*Couleur adaptée à un fond sombre&nbsp;: set background=dark  
*Afficher les numéros de ligne : set number  
*Afficher les numéros de ligne&nbsp;: set number  
*Afficher toutes les commandes tapées (comme dd) : set showcmd  
*Afficher toutes les commandes tapées (comme dd)&nbsp;: set showcmd  
*Ignorer la casse lors des recherches : set ignorecase  
*Ignorer la casse lors des recherches&nbsp;: set ignorecase  
*Activer le support de la souris : set mouse=a  
*Activer le support de la souris&nbsp;: set mouse=a  
 
== Cherche et remplace ==
 
*Most of the time, that's not sufficient, so you can add a range like so:
**
**:8,10 s/''search''/''replace''/g   
*If you want to search an entire file, you can use&nbsp;% to indicate that as the range:
**
**:%s/''search''/''replace''/g
**:&nbsp;
**:&nbsp;   
*downcase les deux premiers caracteres :
%s/^../\L&\E/
 
== Macros ==
 
https://medium.com/@arhuman/just-enough-macros-9505acf01f83
 
In normal mode press ‘q’ then a letter between ‘a’ and ‘z’ which will be the macro name (or more precisely the register in which the macro will be stored).
 
From now on, every key pressed will be recorded in the macro. While recording the macro, you can change mode (normal, insert, visual…) as you like. When you’re done press ‘q’ again in normal mode to end the recording.
 
Executing a macro is as simple as typing ‘''@''’ followed by the macro name.
 
= Regexs utiles =
 
== Notions Regex propres à VIM ==
 
Vim utilise pas mal de symboles et quantificateurs bien à lui.
 
* \{-}: Non-Greedy. Remplace un * en essayant de matcher le moins de caractères possibles.
* \zs : Pour les substitutions. On ne remplace que ce qui est situé après le \zs
 
Supprimer les trailing whitespaces
 
%s/\s\+$//e
 
Remplacer la première occurence d'un truc par ligne (ici  le ; par ,)
 
%s/^.\{-}\zs;/,/g


&nbsp;


&nbsp;
Remplacer toutes les successions d'espaces par un seul
%s/ \{2,}/ /g

Dernière version du 24 novembre 2023 à 17:20

Raccourcis Vim les plus courants

  • Aide de Vim : :help

Modes

  • Interactif : esc
  • Insertion : i
  • Commande : : depuis le mode interactif
  • Remplacement : R

Les commandes précédées de : se font en mode commande, c'est à dire en écrivant : suivis de la commande depuis le mode interactif

Déplacements

  • Début de ligne : 0
  • Fin de ligne : $ (ou fin)
  • De mots en mot : w
  • Sauter vers une ligne : 7G pour aller à la ligne 7

Sauvegarde

  • Sauvegarder : :w
  • Quitter : :q
  • Forcer : :!
  • Sauvegarder et quitter en forcant : :wq!

 

Édition

Les opérations d'effacement, d'insertion  ou de collage peuvent être précédées d'un chiffre pour les faire plusieurs fois : 3x supprimera 3 caractères

Effacement

  • Effacer des lettres : x (un carctère)
  • effacer un mot : dw
  • effacer/couper une ligne (la ligne est mise en mémoire) : dd
  • Supprimer le début de la ligne : d0
  • Supprimer la fin de la ligne : d$
  • Effacer du curseur jusqu'à la ligne 75 : d75G

Copier, annuler, insérer

  • copier la ligne en mémoire : yy
  • Coller (la ligne se colle après le curseur) : p
  • remplacer une lettre : r[nouvelle lettre]
  • Annuler la dernière opération : u
  • Annuler une annulation : Ctrl + R
  • Insérer une ligne avant la ligne du curseur : O
  • Insérer une ligne après celle du curseur : o

Indenter un bloc

Esc. #Mode normal
v #Passer en visuel
j #Une fois par ligne
> #Pour indenter
< #Pour désindenter

Fonctions avancées

  • Chercher un mot depuis le curseur: / (n pour avancer dans les occurences, N pour reculer)
  • Chercher un mot depuis le début du fichier : ?
  • Fusionner des fichiers (à partir du curseur): :r /chemin/du/fichier
  • Lancer une commande externe : :!

Remplacement de texte

"ancien" est le texte qui est là et que nous voulons remplacer, par "nouveau" qui est le nouveau texte

  • Remplacer la première occurence de la ligne : :s/ancien/nouveau
  • Remplacer toutes les occurences de la ligne : :s/ancien/nouveau/g
  • Remplacer toutes les occurences dans les lignes numéro # à # : :#,#s/ancien/nouveau/g
  • Remplacer les occurences dans toout le fichier : :%s/ancien/nouveau/g

Split d'écran

Par défaut, le split ouvre le fichier une seconde fois pour être à deux endroits de celui-ci. Sinon il faut faire :sp autrefichier

  • Découper l'écran horizontalement : :sp
  • Découper l'écran verticalement : :vsp
  • Raccourcis en écran splitté:
    • ctrl + w : naviguer de viewport en viewport
    • ctrl+w puis h, j, k, ou l (ou flèches): se déplacer vers un viewport spécifique
    • ctrl +w puis + ou - : agrandir ou rétrecir le viewport actuel (nombre de lignes)
    • ctrl + w puis = : égalise les viewports actuels
    • ctrl + w puis r ou R : Inverser la position des viewports

 

Options

Les options modifiées après le lancement de Vim seront oubliées dès que l'on refermera celui-ci.

  • Ouvrir une option : :set [option]
  • Désactiver une option : :set no[option]
  • Donne un valeur : :set [option] = [valeur]
  • Connaître l'état d'une option : :set [option]?
  • Aide sur une option : :help [option]

Les options peuvent être modifiées "définitivement" dans le fichier ~/.vimrc; on en trouve un exemplaire dans /etc/vim

Quelques options:

  • coloration syntaxique : syntax on/off
  • Couleur adaptée à un fond sombre : set background=dark
  • Afficher les numéros de ligne : set number
  • Afficher toutes les commandes tapées (comme dd) : set showcmd
  • Ignorer la casse lors des recherches : set ignorecase
  • Activer le support de la souris : set mouse=a

Cherche et remplace

  • Most of the time, that's not sufficient, so you can add a range like so:
    • 8,10 s/search/replace/g
  • If you want to search an entire file, you can use % to indicate that as the range:
    • %s/search/replace/g
       
       
  • downcase les deux premiers caracteres :
%s/^../\L&\E/

Macros

https://medium.com/@arhuman/just-enough-macros-9505acf01f83

In normal mode press ‘q’ then a letter between ‘a’ and ‘z’ which will be the macro name (or more precisely the register in which the macro will be stored).

From now on, every key pressed will be recorded in the macro. While recording the macro, you can change mode (normal, insert, visual…) as you like. When you’re done press ‘q’ again in normal mode to end the recording.

Executing a macro is as simple as typing ‘@’ followed by the macro name.

Regexs utiles

Notions Regex propres à VIM

Vim utilise pas mal de symboles et quantificateurs bien à lui.

  • \{-}: Non-Greedy. Remplace un * en essayant de matcher le moins de caractères possibles.
  • \zs : Pour les substitutions. On ne remplace que ce qui est situé après le \zs

Supprimer les trailing whitespaces

%s/\s\+$//e

Remplacer la première occurence d'un truc par ligne (ici le ; par ,)

%s/^.\{-}\zs;/,/g


Remplacer toutes les successions d'espaces par un seul

%s/ \{2,}/ /g