[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Can Emacs pipe a buffer through another one?
From: |
J Krugman |
Subject: |
Re: Can Emacs pipe a buffer through another one? |
Date: |
Sun, 20 Jun 2004 19:16:00 +0000 (UTC) |
User-agent: |
nn/6.6.5 |
In <40D30930.6090309@yahoo.com> Kevin Rodgers <ihs_4664@yahoo.com> writes:
>J Krugman wrote:
> > In <barmar-6C3FE7.17253017062004@comcast.dca.giganews.com> Barry Margolin
> > <barmar@alum.mit.edu> writes:
> >>In article <cat1ar$c18$1@reader2.panix.com>,
> >>J Krugman <jkrugman345@yahbitoo.com> wrote:
> >
> >>>Suppose I have two buffers A and B, not necessarily associated with
> >>>a file on disk, and furthermore, suppose that B's content is a
> >>>script (bash, perl, python, etc.) that prints to STDOUT a transform
> >>>of whatever it reads from STDIN. (Assume that the first line of
> >>>B is a suitable shebang line.) It would be really cool if, without
> >>>leaving Emacs, and without creating any new files on disk, one
> >>>could feed the contents of buffer A as STDIN to the script in buffer
> >>>B, and take the resulting output and insert them in some other
> >>>buffer C (possibly replacing some or all of C's contents). (Of
> >>>course, there should be no reason why these buffers should all be
> >>>different from each other. For instance, B could be a script that
> >>>rewrites itself.)
> >>>
> >>>Even cooler would be if instead of using whole buffers for program
> >>>and data as described above, one could use regions.
> >>>
> >>>Can one already do any of this in Emacs? If not, can someone give
> >>>me a clue about how to write such a thing in Emacs Lisp?
> >
> >>I can't think of any way this could be done. If the script isn't put in
> >>a file, then the way to feed the script to the interpreter would be
> >>through its stdin. But if the interpreter is reading the script on
> >>stdin, then where will it read the data from?
> >
> > Perl at least will let one give it code as the argument to the -e
> > flag, which leaves STDIN available for input. For bash apparently
> > something similar holds for the -c flag (but I have no experience
> > with it). I imagine other scripting languages have similar
> > mechanisms. Anyway, as long as the interpreter reads the entire
> > script before it executes it (and I don't know of any interpreted
> > language for which this isn't the case), then STDIN could serve
> > both for feeding the script to the interpreter, and then feeding
> > input to the running script[1]. The two tasks do not overlap in time,
> > so it should be possible to accommodate both, no?
>Cool!
>(with-current-buffer (get-buffer "A")
> (shell-command-on-region (point-min)
> (point-max)
> (with-current-buffer (get-buffer "B")
> (buffer-string))
> (get-buffer "C")))
You lost me there! I don't see how this could possibly do what I
described. Can you give me an example of how to use this?
jill
--
To s&e^n]d me m~a}i]l r%e*m?o\v[e bit from my a|d)d:r{e:s]s.
Re: Can Emacs pipe a buffer through another one?, Marco Parrone, 2004/06/29