Xavier Nayrac

Rubyiste accro au TDD, serial blogger, apprenti data scientist, heureux utilisateur de Vim, accordéoniste.
Si vous vous sentez particulièrement généreux, suivez moi sur Twitter.

Insérer le contenu d'un fichier ou d'une commande shell dans Vim

| Comments

Niveau : facile

Pour insérer le contenu d’un fichier quelconque dans le buffer courant de Vim, utilisez la commande :r:

Comme dans: :r /mon/fichier/quelconque.

C’est vraiment utile parfois, le problème est que le nom du fichier doit être absolu, ou doit commencer par le tilde (~). Ce qui dans certains cas limite pas mal l’usage de cette commande.

Au fait, r est le petit nom de read :)

La version avec un point d’exclamation :r! est aussi très intéressante puisqu’elle insère la sortie d’une commande shell. Par exemple, si je tape:

:r! cal

Cela va insèrer le calendrier du mois dans cet article, comme ceci:

     Avril 2014
di lu ma me je ve sa
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

Mais là encore j’ai un souci. Ça ne fonctionne qu’avec des commandes shell et automatiquement dans mon home. Je m’explique:

  1. Si j’édite un fichier ~/dossier/fichier et que je veuille insérer le contenu de dossier, je dois écrire :r! ls ~/dossier. Alors que j’aimerais écrire juste :r! ls.
  2. J’aimerais bien pouvoir insérer avec r la sortie de mes tests Rspec, par exemple. Mais :r! rspec ~/mon/fichier ne fonctionne pas, rspec n’étant pas reconnu par Vim comme étant une commande.

Enfin, bref, si tu sais comment venir à bout de ses limitations, ton commentaire m’intéresse. Sinon, il m’intéresse aussi ;)

À demain.

Articles connexes

Commentaires