J'ai lu beaucoup de fils de discussion sur l'exécution des commandes Shell à partir de vim, beaucoup de documentation sur les commandes vim, .vimrc et tout cela, mais je n'arrive pas à comprendre le langage "ex" ou les mappings vim suffisamment bien pour faire ce que je veux, alors je pose cette question. Voilà :
J'ai un tampon ouvert dans vim (j'utilise la dernière version stable de MacVim sur Snow Leopard, mais pas en mode GUI) dont le contenu sera ensuite transmis à un outil en ligne de commande qui le traitera et me fournira un résultat. Ce que je veux, c'est être capable de :
- Appuyez sur une touche (ou une combinaison de touches, ou lancez une commande vi)
- Exécuter mon utilitaire de ligne de commande avec le contenu de mon tampon actuel (qui peut ne pas être sauvegardé dans le fichier) dans le pipeline
- Capturez sa sortie et affichez-la dans vim, de préférence dans une nouvelle fenêtre divisée (comme le fait :help).
Donc, en résumé : je peux exécuter
$ cat ~/myinput.txt | myScript > output.txt
Mais je veux faire quelque chose comme ça dans vim, en mettant la sortie dans une nouvelle fenêtre divisée si possible.
UPDATE :
Bien sûr, juste après avoir posté, j'ai trouvé d'autres informations sur le sujet. Je sais maintenant que je peux faire cela dans vim :
:%! myScript
Et il placera la sortie de myScript (avec le contenu de la mémoire tampon) dans ma mémoire tampon actuelle, en remplaçant tout ce que j'y ai en ce moment.
Existe-t-il donc un moyen de placer ces contenus dans une nouvelle fenêtre divisée, le buffer ? Merci !