Nov 23, 2024

Wiki

Python

Aide

edit SideBar

Search

Vim


Mode commande

Les déplacements

Au niveau des caractères

h
D'un caractère vers la gauche.
j
D'un caractère vers le bas.
k
D'un caractère vers le haut.
l
D'un caractère vers la droite.

Au niveau des lignes

0
Au début de la ligne.
^
Sur le premier caractère de la ligne.
\$
À la fin de la ligne.
xG
Au début de la ligne x.
gg
À la première ligne.
G
À la dernière ligne.

Au niveau de l'écran

H
En haut de l'écran.
M
Au milieu de l'écran.
L
En bas de l'écran.
Page-Up
Monter d'un écran.
Page-Down
Descendre d'un écran.

Au niveau des mots

w
Pour sauter d'un mot à l'autre, vers l'avant. VIM considère alors comme séparateur de mot tous les caractères non-alphanumériques.
b
Pour sauter d'un mot à l'autre, vers l'arrière.
W
Comme w, en considérant comme « mot » les ensembles séparés par des espaces.
B
Comme b, en considérant comme « mot » les ensembles séparés par des espaces.

Au niveau des phrases

(
Se déplacer de phrase en phrase (en fait sur le prochain caractère suivant une espace après un point), vers le début du texte.
)
Idem, vers la fin du texte.

Au niveau des paragraphes

{
Se déplacer d'un paragraphe à l'autre, vers le début du texte.
}
Idem, vers la fin du texte.

Au niveau des lettres

fx
Pour se rendre sur la prochaine occurrence de la lettre x dans la ligne.
Fx
Idem, vers le début.

On peut répéter la commande en utilisant la touche ;.

Si on dépasse par accident la lettre sur laquelle se rendre, . fera la recherche dans l'autre direction.

Les options

Définir une option

:set option=valeur
Pour définir une option prenant une valeur numérique.
:set nom
Pour activer une option non numérique.
:set nonom
Pour désactiver une option non-numérique.

Liste des options

(no)ruler
(Dé)sélectionne l'affichage des coordonnées du curseur. Version abrégée : ru.
(no)showmode
(Dé)sélectionne l'affichage du mode courant. Version abrégée : smd.
textwidth=x
Nombre de caractères avant un retour à la ligne. Version abrégée : tw.
backspace=x
Définit le fonctionnement de la touche de retour arrière. Par défaut, on ne peut pas effacer, en mode saisie, le texte déjà existant, ni effacer une ligne que l'on vient de taper une fois qu'on est passé à la ligne. Donner à cette option la valeur 2 permet de faire ces deux opérations.

Le .vimrc

Voici un exemple de .vimrc, pour python :

  set encoding=utf8
  set paste
  set expandtab
  set textwidth=80
  set tabstop=4
  set softtabstop=4
  set shiftwidth=4
  set autoindent
  set backspace=indent,eol,start
  set incsearch
  set ignorecase
  set ruler
  set showmode
  set wildmenu
  set commentstring=\ #\ %s
  set foldlevel=0
  set clipboard+=unnamed
  syntax on

Effacer du texte

Les commandes

x
Pour effacer un caractère après le curseur.
X
Comme x, dans l'autre sens.
d
Efface tout entre la position courante du curseur et celle où l'envoie la commande de déplacement qui la suit. Ainsi
  • dG efface tout le texte à partir de la position du curseur,
  • d2j efface la ligne courante et les deux suivantes.
d se combine avec toutes les commandes de déplacement.
dd
Efface la ligne courante.

Le mode visuel

On peut utiliser le mode visuel pour sélectionner la zone de texte sur laquelle agir. Pour entrer en mode visuel, taper v depuis le mode commande.

Il suffit de déplacer le curseur : tout le texte entre le point de départ du mode visuel et l'arrivée est sélectionné. Alors, appuyer sur d détruit la sélection.

Le tampon d'effacement

Lorsque l'on supprime plus d'une ligne du texte, il n'est pas complètement perdu, mais stocké dans un tampon d'effacement, appelé 1.

Si on continue à effacer, le contenu du tampon 1 passe dans le tampon 2, pour laisser la place à ce qui vient d'être d'effacé.

Il y a 9 tampons disponibles avant que le texte ne soit vraiment perdu.

Couper, copier, coller

Coller un tampon donné

Pour récupérer le contenu de ces tampons, il faut utiliser une commande de copie...

p
Colle (paste) le contenu d'un tampon à la position du curseur.
"xp
Colle le contenu du tampon x.

Coller un tampon inconnu

Si vous ne vous souvenez pas dans quel tampon se trouve la partie de texte que vous souhaitez récupérer, il est possible de les tester un par un...

  1. en collant le premier ("1p),
  2. en annulant le collage (u),
  3. et en collant le tampon suivant (.), jusqu'à obtention du résultat souhaité.

Nommer un tampon d'effacement

L'usage de ces tampons est à la base de toutes les commandes de type copier/couper/coller.

Tout effacement s'accompagne de la mise en réserve de la zone coupée pour un collage éventuel.

Il est préférable toutefois de spécifier un « tampon nommé », désigné par une lettre de l'alphabet : non seulement la partie effacée sera bien préservée, même si elle fait moins d'une ligne, mais en plus elle sera « mise à l'abri » de la rotation des tampons d'effacement.

Pour cela, il faut préfixer la commande d'effacement, comme celle de collage, par "x, où x est la lettre identifiant le tampon.

Copier

Pour copier, il faut sélectionner (mode visuel) la zone que l'on souhaite placer dans le tampon.

Ceci fait, il suffit d'utiliser la commande de copie :

y
Copier.

éventuellement préfixée d'un indicateur de tampon :

xy
Copier, et placer dans le tampon x.

On peut aussi utiliser les commandes de déplacement :

yx
x est une commande de déplacement, copie la zone délimitée par le déplacement dans un tampon.

Enfin,

yy
Copie la ligne courante dans un tampon.

Rechercher et remplacer

Recherche

*
Sauter directement sur la prochaine occurrence du mot sous le curseur.
#
Idem, pour la dernière occurrence.
/
Début d'une recherche.
Lorsqu'on appuie sur /, ce caractère s'affiche sur la dernière ligne de l'écran, et on peut taper le texte à rechercher (une expression rationnelle).
n
: Pour poursuivre la recherche en avant (en mode recherche).
N
: Poursuivre la recherche en arrière.

Substitution

Elle se fait en mode ex. Il faut donc taper : pour y accéder.

s/mot1/mot2/
Remplacer la première occurence de mot1 par mot2.

On peut modifier l'effet de la commande en y ajoutant des suffixes :

g
Permet d'étendre le remplacement à tout le fichier.
c
Demande une confirmation.

Ainsi :s/Dupond/Dupont/gc remplace toutes les occurrences de Dupond par Dupont dans le fichier.

On peut encore préciser, en préfixe, le nombre de lignes à modifier...

1,10s/mot1/mot2/
Permet d'agir uniquement entre la ligne 1 et la ligne 10.

Une fois une que vous avez défini l'élément à rechercher et ce par quoi il doit être remplacé, vous pouvez répéter l'opération simplement en spécifiant une nouvelle zone d'effet.

Ainsi :20,30s refait le remplacement précédent, uniquement entre les lignes 20 et 30.

Annuler les modifications

u
Annule la dernière modification.
C--R
Refaire (redo).

Mode saisie

Passer en mode saisie

Pour passer du mode commande au mode saisie, on peut, au choix, utiliser une des touches suivantes

a
Après le caractère courant
i
Sous le caractère courant
A
À la fin de la ligne courante
I
Au début de la ligne
o
Ouvre une nouvelle ligne, au-dessus de la ligne courante
O
Ouvre une nouvelle ligne, en dessous de la ligne courante

Mode remplacement

R
Pour accéder, à partir du mode commande, au mode remplacement.
rx
Pour remplacer le caractère sous le curseur par x, sans entrer dans le mode remplacement.

Divers

Caractères composés

Grâce à l'option digraph, vous pourrez utiliser <C--k> pour entrer un caractère composé, en frappant deux touches.

Pour voir la liste de ce qui est accessible, tapez :digraph.

Vous pouvez en rajouter en tapant :dig touche1 touche2 code-décimal-du-caractère.

Abréviations

Il est possible de définir des abréviations sous vim : saisir quelques lettres entendues, et le texte voulu, plus long, est inséré.

Les commandes à connaître sont ici les suivantes :

  • Pour créer une abréviation, tapez :ab abréviation texte.
  • Pour connaître toutes les abréviations que vous avez faites, tapez simplement :ab, sans rien.
  • Pour enlever une abréviation, tapez :una abréviation.
  • Pour insérer un caractère spécial dans une abréviation, vous devez utiliser <C--V>, suivi du caractère spécial en question.
Ainsi, :ab entrée <C--V><entrée> vous permettra de revenir à la ligne en tapant le mot « entrée ».

Lorsqu'on tape un texte, VIM vérifie qu'il ne s'agit pas d'une des abréviations définies en début d'édition. Si c'est le cas, et qu'elle est tapée assez vite, il remplace l'abréviation par son équivalent long.

Si on souhaite vraiment taper l'abréviation, et non le texte auquel l'abréviation fait référence, il suffit de taper les lettres qui la composent un peu plus lentement.

Page Actions

Recent Changes

Group & Page

Back Links