Quelques "killer tips" pour vim

mardi 3 janvier 2006
par  G a.k.a Gérard Milhaud
popularité : 2%

<table_des_matieres70>


Vim est comme un vieux gruyère suisse, Goldorak, les cacahuètes grillées à sec avec le pastis, ou encore Marseille, à savoir trop puissant. Surtout lorsque l’on dispose de quelques astuces (les plus secrètes possibles s’entend) qui d’une part accélèrent le travail et surtout, laissent bouche bée vos collègues qui ne les connaissaient pas encore.

Une pas connue qui va bien pour démarrer : tranformer le fichier édité en html...

Retour sommaire

TERRIBLE : Complète la ligne courante

En mode insertion :

Si vous avez tapé abc, alors complète la ligne comme la première ligne du fichier commençant par abc, chaque nouvelle frappe de CTRL-L complétant la ligne par la ligne suivante du fichier qui commence par abc

Retour sommaire

SUPER TERRIBLE : Complète le mot courant

En mode insertion :

Si vous avez tapé sou, alors complète le mot avec le premier mot du fichier commençant par sou, chaque nouvelle frappe de CTRL-N complétant le mot par le mot suivant du fichier qui commence par sou. CTRL-P inverse le sens de parcours de la liste des mots. Avec une version de vim suffisament récente, la liste des mots possibles s’affiche en pop-up et vous pouvez la parcourir avec les touches "flèche" aussi bien qu’avec CTRL-N/P.

Retour sommaire

MONSTRUEUX : positionne le curseur sur la dernière modification du fichier

’. : positionne au début de ligne de la dernière modification

`. : encore plus fort, positionne sur l’emplacement exact de ladite dernière modification...

Retour sommaire

La calculette : vous la cherchiez, non ???

En mode insertion :

insère 810...

Retour sommaire

Celle-là, ça fait un moment que vous la rêviez : rechercher sans tenir compte de la casse

recherche Jean ou jean ou JEan, etc.

Retour sommaire

Ce fichier sous le curseur, si je l’éditais

ouvre le fichier dont le nom est sous le curseur

Retour sommaire

Cherche le mot sous le curseur en avant... ou en arrière

cherche en avant le mot qui est sous le curseur tandis que

fait la même recherche en arrière

Retour sommaire

C’est la sortie de cette commande qu’il faut que j’édite

édite le résultat de la commande grep users /etc/passwd | awk -F: '{print $1}' | sort

Retour sommaire

CHAUD, CHAUD : Faire agir une commande externe sur une sélection du fichier

Par exemple,

dégagera de votre fichier toutes les lignes entre la 26ème et la 100ème qui contiennent sarko indépendamment de la casse.

Pour la même chose pour tout le fichier, c’est évidemment :

Retour sommaire

Attention CHAUD BOUILLANT : lancer depuis vim firefox sur la page de recherche google du mot sur le curseur

Ceci une fois posé dans votre .vimrc, un simple vg sur un mot quelconque du fichier édité et firefox vous ouvre la page de résultat de la recherche de ce mot dans google...

Explications...
- vmap car macro en mode visual
- g est la touche associée, qui va déclencher la macro
- <C-U> va permettre de ne pas remplacer le mot courant par le résultat (vide) de la commande (j’ai mis un petit moment pour le trouver celui-là...)
-  ! : on lance une commande shell
- remplacer firefox par le chemin complet s’il n’est pas dans votre $PATH
- <cword> dans l’URL : c’est ce qui permet de désigner en langage vim "le mot sur lequel est positionné le curseur".
- on redirige vers /dev/null histoire de ne pas être pollué par d’eventuels messages générés par le lancement de la commande
- <CR><CR> parce qu’il faut taper deux fois enter pour terminer cette commande

Cadeau : la même pour Wikipedia france : il faut taper cette fois vw sur le mot voulu pour l’activer :

Retour sommaire

[Ajout 7/5/2007] Dans le même esprit : ouvrir dans firefox l’URL sélectionnée en mode visuel

Envoyé par strix/gérard bonneton, vimmeur averti, merci à lui :

Explications...
- <cfile> dans l’URL : c’est ce qui permet de désigner en langage vim "le chemin sur lequel est positionné le curseur" : en pratique ça n’est pas exactement une URL... c’est pourquoi il faut sélectionner l’URL en mode visuel et non simplement se positionner dessus

Retour sommaire

La recherche c’est bien, la recherche incrémentale ET "highlighted", c’est mieux

Facile, posez dans votre .vimrc ces deux petites lignes

La recherche incrémentale permet de positionner dynamiquement le curseur sur le motif de recherche tapé au fur et à mesure qu’on le tape.

La recherche "highlightée" met en valeur le motif de recherche partout dans le fichier.

Retour sommaire

Incontournable : rouvrir le fichier avec le curseur positionné là où il était quand on l’a fermé

Un peu de code ésotérique supplémentaire dans votre .vimrc pour permettre ce comportement :

Retour sommaire

Marre d’avoir tout votre texte décalé plein de tabulations quand vous copier-collez à la souris dans vim : here is the solution

Une commande à taper avant de copier-coller et le tour est joué

Prenez soin de taper

ensuite car l’option paste invalide pas mal de chose (from http://vim.dindinx.net/traduit/html...) :

Du coup poser :set paste dans le .vimrc n’est pas forcément une bonne solution...

Retour sommaire

Pour avoir le background dark sous vim afin d’avoir une coloration syntaxique adapté au fond noir... mais pas sous gvim (qui vient de base avec un agréable fond blanc ou gris)

Dans le .vimrc :

Retour sommaire

Le bouquet final, l’apothéose : LA CORRECTION ORTHOGRAPHIQUE !!!

Nécessite l’install d’aspell et du dictionnaire français (17 secondes : apt-get install aspell aspell-fr). Une fois que vous pouvez faire en ligne de commande aspell -c et que vous avez le comportement voulu, c’est bon, vous êtes prêt pour l’ajouter dans vim.

Dans le .vimrc :

Explications :

- map car c’est une macro pour le mode "normal" (pas insertion, ni visual)
- ,C est ce qu’il faut taper pour activer la macro
- :w = on sauve le fichier
-  : !aspell -c % : on applique aspell sur l’ensemble du fichier, ce qui va le modifier
- :e % : on recharge le fichier une fois aspellisé

Tout simplement terrible...

Retour sommaire


À bientôt pour un nouveaux chargement de pépites pour briller en société...


Commentaires  (fermé)

vendredi 5 octobre 2007 à 23h42

Bon Article, merci.

lundi 16 juillet 2007 à 19h30

Salut,

cool l’article, je m’en suis inspiré pour essayer de faire un truc simple sous vi mais il me reste un problème :
j’essaye d’ouvrir le fichier edité dans VI dans mon navigateur.
Mon navigateur ouvre bien le fichier mais il me laisse une fenetre dos ouverte avec ça


map  : !C :\WINDOWS\system32\cmd.exe /C D :"Program Files\K-Meleon\k-meleon.exe" % ;
mon problème c’est qu’une fenetre DOS reste ouverte avec :
C :\WINDOWS\system32\cmd.exe /c C :\WINDOWS\system32\cmd.exe /C D :"Program Files\K
- Meleon\k-meleon.exe" abonnement_adsl.txt ;
shell returned 1
Hit any key to close this window...


si qqun avait une idée pour que cette fenetre se ferme directement :-)

Logo de alex
jeudi 5 juillet 2007 à 22h50 - par  alex

comment fais tu pour selectionner un bloc avec la souris sous gvim par exemple. Peux tu etre un peu plus précis, STP ?

Logo de matt
samedi 3 mars 2007 à 14h37 - par  matt

:h ctrl-o

Vim c’est magique !

Logo de Bertrand (un ancien de l’ESIL !)
jeudi 1er mars 2007 à 16h42 - par  Bertrand (un ancien de l’ESIL !)

Merci, j’ai trouvé plein de trucs super intéressant dans cette page ! Mais j’ai un nouveau défi : gf permet d’ouvrir le fichier sous le curseur. Mais comment revenir au fichier précédent (j’imagine qu’il doit y avoir un autre moyen que :bd qui fait revenir au buffer précedent) ? Je cherche une commande du type :pf (previous file).

Cette commande serait également tres utile pour parcourir les repertoires/fichiers sous gvim...

Logo de galinette
jeudi 12 janvier 2006 à 04h47 - par  galinette

ayaa, tu crains papet, avec ton :26,100.... le vrai wArRi0r il utilise le mode visuel avec la commande v (ou la souris pour les elit3s) qui va te generer un bloc de selection :’<,’> pour appliquer ta commande. La cerise sur le sundae c’est quand tu etends ta selection visuelle avec une recherche insensitive /\c ayayaye, un G (gare a l’ego) ou un numero de ligne, si y’a une vimeuse en train de faire du perl dans la salle planques toi vite sinon elle va te |er dans grep. Bonne annee 2006 et meilleurs voeux ! J