Problèmes courants sous Vim

J'ai rencontré ces problèmes plusieurs fois, personnellement ou chez des gens peu familiers de Vim. Voici comment les résoudre.

La molette ne fonctionne pas.

Vous essayez de faire un coup de molette, et au lieu de faire défiler le contenu du fichier, ça affiche les lignes précédentes du terminal.

Solution :set mouse=aEntrée. À mettre dans le fichier ~/.vimrc pour que ce soit persistant (sans les : initiaux).

Lors d'un copier/coller, toutes les lignes sont indentées en escalier.

Cela se produit quand vous collez du code qui serait indenté automatiquement si vous le tapiez manuellement. Pour éviter ça, faites :set pasteEntrée et recollez.

Le déplacement vers la ligne suivante/précédente avec j/k saute des lignes.

Quand une ligne est trop longue et que l'option wrap est active (ce qui est le cas par défaut), la ligne sera scindée en plusieurs lignes pour s'afficher à l'écran.

Problème, les touches de déplacement j et k se déplacent à la ligne réelle précédente ou suivante, et non à la ligne affichée, ce qui est perturbant.

Il faut utiliser les commandes gj et gk pour obtenir le comportement voulu. Comme ça fait 2 fois plus de touches à taper et que c'est contraignant, on préfère mapper ces touches pour avoir l'effet voulu en gardant j et k :

:nnoremap j gjEntrée
:nnoremap k gkEntrée

Le copier/coller depuis Vim ne fonctionne pas.

Vim gère son propre presse-papier (il y a plusieurs registres), qui est différent du presse-papier système. Par conséquent, la commande y ne va copier que dans Vim.

Pour pouvoir copier dans le presse-papier système, il faut que plusieurs conditions soient réunies.

  • Il faut que Vim soit compilé avec l'option 'clipboard'. Vous pouvez le vérifier en faisant :versionEntrée, cette fonctionnalité est incluse si 'clipboard' est précédé d'un '+'.
    Sur les systèmes RedHat, il faut lancer Vim avec la commande vimx pour avoir ce support. Sur les systèmes Debian, il faut installer le paquet vim-gtk.
  • Si vous êtes connecté en ssh, vous devez avoir activé l'X11 forwarding (ssh -X).
  • Il faut préciser à Vim que vous voulez copier vers le presse-papier système en précédant la commande de "*. Pour copier l'intégralité du fichier vers le presse-papier, en supposant que le curseur se trouve au début : "*yG

Publié le 06 avril 2015 à 23:21

Ajouter un commentaire