Begin main content

Piping to an emacs buffer with emacsclient

GNU Emacs buffs will know all about emacsclient - it's a commandline program that allows you to open files in a new buffer in an already running emacs instance. It's very handy. What you may not know is you can also evaluate arbitrary Emacs lisp using emacsclient. Using this fact and based on an existing example from EmacsWiki I have written a perl script that you can pipe to, and the piped data will appear in a buffer via emacsclient.

My ultimate aim is for a PAGER script to use instead of less in my emacs shell. While this isn't quite perfect for that use, it's still pretty useful.

NB: The code below is probably out of date by the time you read this - see this gist for the latest version that you can clone, fork etc.

#!/usr/bin/perl
usestrict;
usewarnings;

useIO::Select;

my$emacsclient = "/usr/local/bin/emacsclient";

# This script uses emacsclient, be sure to have a running server session.
# A server-session can be started by "M-x server-start".
exit 1
    if 0 != system("$emacsclient -n --eval '(progn (pop-to-buffer (get-buffer-create \"*piped*\")))'");

my$s = IO::Select->new;
$s->add(\*STDIN);

while (1)
{
    # block until data available
my$data = <STDIN>;

    # exit if STDIN closed
exit(0)
        if!$data;

    # keep reading while data is available, or we have a bunch of lines
my$lines = 0;
    $data .= <STDIN>
        while$lines++ < 100 && $s->can_read(.5);

    $data =~ s/"/\\"/g;
    $data =~ s/'/'\\''/g;
    $data =~ s/\\/\\\\/g;
    system(qq{$emacsclient -n --eval '(with-current-buffer "*piped*" (goto-char (point-max)) (insert "}
            . $data . qq{"))'});
}

06:23 PM, 02 Mar 2011 by Mark Aufflick Permalink

One more escape

Just needs to escape backslashes too, $data =~ s/\\/\\\\/g;

by Unregistered Visitor on 03/03/11

Good point

I was thinking it's not necessary since the shell single quote doesn't treat backslashes specially, but of course the emacs lisp double quoted string will. I've updated the main post accordingly.

by Mark Aufflick on 03/06/11

Note I've updated the gist

So it now works for file paths as arguments too, since some commands assume the PAGER can do that.

by Unregistered Visitor on 03/04/14

edu

Yacht race valley area can be a comprehensive enjoyment for anyone people that loves doing water activities race. I see a couple of times during my living as GrabMyEssayOnline write me an essay not first year well as sense excellent. I'm hoping you have your online video with this contest and so be sure to tell people.

by Unregistered Visitor on 01/06/15

bubblegum casting

Union was the irrational and very religion-like belief in the absolute superiority of certain human ideas.bubblegum casting

by Unregistered Visitor on 01/07/15

adads

It was a very good post indeed. I thoroughly enjoyed reading it in my lunch time. Will surely come and visit this blog more often. Thanks for sharing. get your ex back

by Unregistered Visitor on 01/07/15

jams

it's really nice and meanful. it's really cool blog. Linking is very useful thing.you have really helped lots of people who visit blog and provide them usefull information girlsdoporn

by Unregistered Visitor on 01/08/15

bubblegum casting

There are Christians who think that Stoicism is fully compatible with Christianity.bubblegum casting

by Unregistered Visitor on 01/11/15

Edu

The key physique associated with project writing is made of the main points in prefer the actual topic of the project. The topic is usually sometimes warranted or nullified generally Check out best essay paper writing service physique associated with project writing. Thorough examination is usually completed within this piece.

by Unregistered Visitor on 01/17/15

Stanley High School Online

Very fabulous post you have posted here i love your efforts keep it up. High School Diploma Online

by Unregistered Visitor on 01/19/15

Hi

OPJS University has been established in the year 2013, by an Act (Act No. 19 of 2008) Act No.-16 of 2013, of the Rajasthan State Legislature and is approved under section 2(f) of UGC Act 1956 vested with the authority to award Degrees, Diplomas and Certificates. Phd admission in rajasthan

by Unregistered Visitor on 01/20/15

thank you

Anda mencari produk Furniture Jepara dengan desain minimalis ataupun klasik asli mebel jepara dengan harga murah. kami menyediakan berbagai tipe atau model produk Furniture Jepara terutama dengan menggunakan material kayu jati. Disni saya menjual produk produk mebel mulai dari kursi tamu minimalis meja makan jati tempat tidur dan sebagainya. Untuk indormasi lebih lanjut anda bisa langsung menuju katalog website kami. Produk produk yang kami tawarkan mempunyai kualitas tinggi dan kami menawarkannya dengan harga yang cukup terjangkau, tentunya kualitas produk tersebut akan kami jaga. Produk Furniture Minimalis selalu banyak diminati oleh banyak konsumen baik itu dari dalam maupundari luar negri. Banyak sekali turis turis asing berbondong bondong ke jepara dengan tujuan yang sama seperti anda yaitu untuk mencari produk Kursi Tamu Jati. Kami Furniture Jati sebagai produksen furniture memberikan anda kemudahan untuk berbelanja produk furniture jepara dengan aman melalui transaksi online, kami menyediakan berbagai model di dalam katalog website kami. Anda cukup duduk santai di ruamh, kami kerjakan produk pesanan anda dan tentunya kami akan memberikan garansi jika produk tidak sampai ke tangan anda ataupun produk Furniture Jepara yang anda pesan tidak sesuai dengan pesanan. Setiap produk kami, kami proses dengan sangat terkontrol, baik itu dalam hal pemilihan kayu, proses kontruksi, pahatan ukir hingga proses finishing. Oleh karena itu kami sebagai perusahaan Furniture Jati selalu mengutamakan kualitas produk serta meningkatkan pelayanan yang ramah kepada anda. Jepara memang dikenal sudah sejak lama sebagai kota industri Furniture Jepara terbesar di asia hingga dunia. Kualitas produk dari jepara sudah banyak di akui oleh beberapa negara. Kota Jepara sendiri selalu menjadi langganan aktif dalam setiap pengadaan pameran furniture Furniture Jati. Banyak sekali produk produk yang di tawarkan disana, baik itu dengan model minimalis ataupun klasik. Salah satunya yang menjadi produk unggulan mebel jepara yaitu Kursi Tamu Jati yang sangat cantik dengan keaslian ukiran khas mebel jepara yang terukir rapih dan halus di setip sudutnya. Ada juga produk unggulan lain seperti tempat tidur, meja makan, set meja makan dan banyak lainnya. Mebel Jepara Murah Oleh karena itu mulai dari lima tahun terakhir kami sudah mengembangkan untuk pembelian produk furniture dengan menawarkannya di Jepara Online yang sudah berkembang hingga sekarang. Anda dapat memilih produk produk furniture tersebut diatas tadi di katalog produk kami tersebut disini Furniture jepara Online banyak sekali yang dapat anda pilih. Untuk bertransaksi dalam pembelian Furniture Jati secara online dengan kami, anda tidak perlu ragu, karena perusahaan kami sudah diakui dan mempunyai ijin kerja yang bersangkutan dengan hukum. Jadi apabila anda ada keluhan saat bertransaksi Toko Furniture Online produk produk kami berkualitas karena dikerjakan oleh tenaga mebel yang sudah berpengalaman dibidangnya. Untuk katalog produk anda bisa klik link berikut dengan kami, jaminan keamanan 100% di toko kami Toko Furniture produk produk kami berkualitas karena dikerjakan oleh tenaga mebel yang sudah berpengalaman dibidangnya. Untuk katalog produk anda bisa klik link berikut Tempat Tidur Jati kami sudah mulai membuka pemesanan dengan anda cukup dengan santai diruamh, anda tinggal menyodorkan bagaimana produk mebel yang anda inginkan, anda dp maka kami akan kerjakan, untuk lama proses tergantung tingkat kerumitan produk pesanan, itu smua bisasa kami tawarkan secara Tips Sebelum Membeli Furniture Diantaranya anda dapat memesan produk produk produk kami berkualitas karena dikerjakan oleh tenaga mebel yang sudah berpengalaman dibidangnya. Untuk katalog produk anda bisa klik link berikut Meja Makan Jati dengan harga yang sesuai dengan kantong anda. Furniture Jepara Online memang sedang maraknya disaat perkembangan yang semakin canggih, tetapi anda jangan mudah tertipu dengan tergiur harga yang jauh dibawah harga normal. Produk unggulan mebel jepara seperti gebyok jepara rata rata dijual dengan harga standart yaitu di kisaran Rp. 7.000.000, dan untuk produk produk produk kami berkualitas karena dikerjakan oleh tenaga mebel yang sudah berpengalaman dibidangnya. Untuk katalog produk anda bisa klik link berikut Tempat Tidur Jati Jepara ada di kisaran harga berkisar antara Rp. 3.000.000 hingga Rp. 30.000.000 tergantung tingkat kesulitan dan bahan material seperti yang saya terangkan diatas. Tersedia model kamar set dengan type Kamar Set Jati yang anda bisa lihat disini. Kami menyediakan layanan online untuk pemesanan Furniture Jepara dengan sistem online. produk produk kami berkualitas karena dikerjakan oleh tenaga mebel yang sudah berpengalaman dibidangnya. Untuk katalog produk anda bisa klik link berikut Meja Makan Jati juga tersedia di toko kami. Banyak pilihan produk produk mebel yang ada di toko kami, diantaranya produk produk kami berkualitas karena dikerjakan oleh tenaga mebel yang sudah berpengalaman dibidangnya. Untuk katalog produk anda bisa klik link berikut Kursi Tamu Jati dengan harga yang bervariasi dan tentunya sangat kompetitif. Ada juga produk unggulan lain seperti tempat tidur, meja makan, set meja makan dan banyak lainnya. Oleh karena itu mulai dari lima tahun terakhir kami sudah mengembangkan untuk pembelian produk furniture dengan menawarkannya di Furniture Jepara Ada juga produk unggulan lain seperti tempat tidur, meja makan, set meja makan dan banyak lainnya. Oleh karena itu mulai dari lima tahun terakhir kami sudah mengembangkan untuk pembelian produk furniture dengan menawarkannya di Mebel Minimalis Murah yang sangat cantik dengan keaslian ukiran khas mebel jepara yang terukir rapih dan halus di setip sudutnya. Ada juga produk unggulan lain seperti tempat tidur, meja makan, set meja makan dan banyak lainnya. Oleh karena itu mulai dari lima tahun terakhir kami sudah mengembangkan untuk pembelian produk furniture dengan menawarkannya di Mebel Jepara Online

by Unregistered Visitor on 01/21/15

asefasfasfgsag

Here at Toronto Secure Locks we offer an unbeatable fast Professional Locksmith service, so if you’re locked out, need your locks changing or replacing or even need a safe opening we can help any time of day, we also provide an Access control, CCTV http://localcalgarylocksmith.com/ http://0544342878.com http://mysaite.ru

by Unregistered Visitor on 01/21/15

Rachel

Olympic Ice skating 2008 finds our great country in some mammoth fight to thwart typically the emerging dominance of Japan and Cuba for the purpose of baseball supremacy throughout the world. The XXIXth Olympiad of this Modern Era of this Olympic Ice skating 2008 Adventures may allow the curtain fall at the game from baseball. www.scorespro.com

by Unregistered Visitor on 01/23/15

Cool

everyday live Everyday Roots Book - Live a Healthier, Natural Life. Anyone Interested In Getting Healthy Or Living A More Natural Life Will Love This. Teach you how to live a healthier, more natural life with remedies you can make at home. go to the website

by Unregistered Visitor on 01/26/15

Add comment