Hoe creëer je heen en weer communicatie naar een proces

Ik schrijf een emacs-modus die een interface vormt met een shell-proces. Het shell-proces is duur om te starten, wat betekent dat ik het een keer zou willen doen en dan naar behoefte commando's van emacs zou sturen. Hoe is het mogelijk om asynchrone tweewegscommunicatie met een extern programma te doen via emacs.

Van wat ik begrijp, komt de comint-modus dicht in de buurt van wat ik nodig heb, maar het lijkt erop dat dat alleen kan worden gebruikt voor een hoofdmodus waarbij de gebruiker de invoer levert als interfacing met de python-shell.

Ik zou graag zien dat het daadwerkelijke proces en de shell worden verborgen voor de eindgebruiker.

Is there a reasonably easy way to do this? Or some resources on the subject>

Bedankt iedereen

4

1 antwoord

De functionaliteit die wordt gebruikt door de comint-modus is startproces , dus ik denk dat je daar misschien mee wilt beginnen. U verzendt gegevens naar het proces met proces-send-string en de uitvoer van het proces wordt "automatisch" gelezen door Emacs en doorgegeven aan het procesfilter, een functie die u via set- werkwijze filter .

De grootste moeilijkheid is dat je niet de grootte van de brokken kunt kiezen die je van het proces ontvangt, dus je procesfilterfunctie zal meestal maar een deel van wat het ontvangt willen verwerken en de rest voor later bewaren (bijvoorbeeld om verwerk de uitvoer één regel per keer).

4
toegevoegd