ESS doğrudan bir Emacs tamponuna mı yazdı?


33

S: ESS'nin (R) doğrudan bir Emacs tamponuna çizmesini nasıl sağlayabilirim?

ESS ile R ile etkileşime girdiğinde, R, çizimlerini çizmek için Emacs'ın dışında ayrı bir grafik penceresi oluşturmaya varsayılandır. (Biri elbette, diğer grafik aygıtları seçebilir, bu da PDF'ye nasıl çizeceğimizi vb.) İki konu var: birincisi, yeni pencere Emacs'ın odağını çaldı ve ikincisi de her şeyin güzel ve düzenli olmasını sağlamak güzel olurdu Emacs ekosistemi içerisinde.

Öyleyse: "doğrudan" (veya dolaylı olarak) bir Emacs tamponuna yerleştirmenin ve daha da önemlisi, kullanıcının çok fazla manuel müdahalesi olmadan bunu yapmasının bir yolu var mı?

Bu eski Yığın Taşması iş parçacığında bazı önceden tartışmalar yapıldı , ancak önerilen kısmi çözümler ideal değil. Bunlar çoğunlukla R'deki (örneğin PNG'ye) çizim aygıtını değiştirmeyi, geçici bir dosyaya çizmeyi ve daha sonra bu dosyayı bir Emacs tamponunda manuel olarak ziyaret etmeyi içerir. Bu, özellikle hedef, arsa penceresini / arabelleğini etkileşimli olarak kullanmak ve bir oturumda birçok parsel çizmek (veya anında katmanları eklemek) ise, beni çok tıkırtıyor.

Burada spekülasyon yapıyorum, ancak hem R hem de Emacs SVG'yi desteklediğinden kullanmak için yararlı bir format olabileceğine dikkat çekiyor. Bununla birlikte, birinin anında iletişim kurmak için R sürecine nasıl bağlanıp bağlanamayacağı bana açık değildir. R'nin SVG kodunu doğrudan bir Emacs arabelleğine koymasının bir yolu var mı, yoksa geçici bir dosyanın aracından geçmesi gerekir mi? Bir kişi Emacs'ı R yarattığında otomatik olarak yeni bir geçici dosyayı ziyaret etmeye ya da geçici bir dosya yeni bir arsa tarafından güncellendiğinde / üzerine yazıldığında böyle bir arsa tamponunu güncellemeye nasıl ikna edebilir?


3
Emacs bir dosya kullanmak zorunda değildir ve bunun yerine bir görüntüyü arabellek eklemek için bir dize kullanabilir create-image. Aslında, R ve Emacs'in birbirleriyle iletişim kurmasını sağlamanıza yardımcı olamam.
wasamasa

1
Bu, ESS posta listesinde tartışılmıştır: bkz. Stat.ethz.ch/pipermail/ess-help/2013-November/009559.html
Ista

Yanıtlar:


5

Tamamen soruyu cevaplamayın, ancak org-mode'un babil'inde R kullanıldığında:

* My example
#+name: simple-org-example
#+begin_src R :session *my-R* :dir "." :results output graphics :file example.svg :width 18 :height 9
  plot(cyl~mpg,data=mtcars)
#+end_src

Bunu C-c C-corg modunda *my-R*yapmak, etkileşimli bir ESS arabelleğine sahip bir arabellek oluşturur, example.svgdosyada arsa oluşturun ve sonra açılan dosyaya oluşturulan bağlantıyı tıklatarak açabilirsiniz.

Org modu, görüntüyü satır içi olarak yapabilir, ancak bu işlevi değiştirirken (ile M-x org-toggle-inline-images) veya dosyayı açarken yapar, ancak içinde kod çalıştırırken yapmaz.

Yani bu tam bir çözüm değil.


3
Görüntüyü ayarlayarak otomatik olarak görüntüleyebilirsiniz (add-hook 'org-babel-after-execute-hook 'org-display-inline-images), ancak bu (sanırım) hala OP'nin istediği şey değildi.
Ista

0

Sadece yayınlanmıştır bir cevap için eski yazı senin soru kastediyoruz. Orada yazdığım gibi, bu sizin için işe yaramayabilir, çünkü genel bilgisayar iş akışınızda büyük bir değişiklik olabilir.

Ancak exwm , herhangi bir emac olmayan pencerenin bir emacs tamponu olmasına izin vererek, normal emacs ayarları ve tuş bağlamaları tarafından kontrol edilen emac tamponlarında R çizimlerinin olmasını sağlar.

İşte bunun neye benzediğinin bir örneği:

görüntü tanımını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.