2010-04-24 5 views
5

Existe-t-il un moyen d'exécuter une commande shell, d'afficher la sortie dans un nouveau tampon et d'afficher cette sortie de façon incrémentielle? Eshell et d'autres émulateurs de terminaux emacs font un travail de recherche, mais je ne vois aucun moyen de les écrire. Ce que je voudrais faire est écrire de petites fonctions d'elisp pour faire des choses comme des tests d'unité d'exécution, etc. et regarder la sortie ruisseler dans un tampon.Commandes Emacs et Long Shell

La commande shell shell elisp est proche de ce que je veux mais elle affiche toutes les sorties en même temps à la fin du processus.

+3

Pas exactement ce dont vous avez besoin, mais 'M-x compile' montre la progression de la compilation de façon incrémentielle. – doublep

+0

C'est exactement ce dont j'ai besoin. – darrint

Répondre

4

Comme doublep mentionné, il y a M-x compilez, et il y a aussi tout simple shell M-x et dans ce shell que vous utilisez tout ce que vous voulez.

1

Vous pouvez également utiliser comint-run pour exécuter une commande sans avoir à démarrer une sous-couche en premier. Je crois que M-x shell utilise le mode comint avec quelques modifications, donc ce ne sera pas très différent de cela. Mais si vous voulez appeler un programme directement et que ses entrées et ses sorties sont liées à un tampon, la fonction comint-run est la fonction à appeler. C'est un peu difficile à utiliser, alors lisez la documentation: C-h f comint-run.

Questions connexes