2011-01-14 18 views
10

Kabuk modunda, emacs içine ekran veya tmux eklemek istiyorum. Sık sık kendimi uzak sunucularda ekranın içindeki alt süreçlerle emacs çalıştırıyor buluyorum; iş akışını yerel emacs + TRAMP'a kaydırırsam hoş olurdu; Ancak, kalıcı oturumları yeniden bağlayabilme zorunluluğu vardır. I Çeşitli hatalar karşılaşmadan devam çünküEmacs kabuk modunda Gnu ekranı: renk kaçış kodlarının düzeltilmesi

Kabuk mod oldukça tercih edilir (bu tür bir iş akışı [1] R analizi için özellikle yararlıdır) ve hatta Mx terimi veya Mx ANSI vadede + ekran + R. kombinasyonu kullanıldığında çöker Bununla birlikte, Mx kabuk altında çalıştırıldığında ekranda kaçış kodları olarak gösterilen ansi renginden kurtulmak mümkün görünmüyor. ansi-color-for-comint-mode-on'u kullandıkları zaman iyiler - ama ekran açıldığında, korkunç bir karışıklık oluyor.

herkes kabuğuna + ekran veya tmux ile ansi renklerin düzgün yorumlanması için bir koşul kümesi anladım mı? ? .. inatçı uzaktan çalışan işlem ve yerel emacs'dan bunları takmadan? .. açısından başka alternatifler tamamen renk kurtulmak konusunda ne var mıdır

[1] http://blog.nguyenvq.com/2010/07/11/using-r-ess-remote-with-screen-in-emacs/

+1

@Seppo doğru: kabuk modu istediğinizi yapamaz. M-x terimi veya M-x ansi-terimi ile yaşadığınız problemleri tanımlamak faydalı olabilir ve belki de bunlara yardımcı olabiliriz. –

cevap

5

Bildiğim kadarıyla söyleyebilirim, Ekran o VT100 gibi geleneksel bir karakter terminali değildir çünkü Emacs' kabuk modu basit ve, sağlayamaz gelmez terminalin özellikler gerektiriyor. Bu yüzden sorun, renk kodlarından kurtulmak ya da yorumlamakla ilgili değil - Screen'in düzgün çalışması için ihtiyaç duyduğu daha fazla terminal kapasitesi var. Varsayılan Ekran By

bile (It hataları dışarı açıkça ekran yeteneği ihtiyacı söyleyerek) bildiğim kadarıyla söyleyebilirim, Emacs' kabuk modunda başlamaz. Web'in etrafındaki bazı mesajlar, TERM = xterm'nin bu konu üzerinde çalışmasını önermektedir; ancak bu, Terminal'in sahip olmadığı XTerm'in yeteneklerine sahip olduğunu düşünmek için sadece Ekranı kandırıyor. Emacs'ın

terim ve ansi süreli modları Ekran gerektirdiği terminali kapasitede olduğuna, ama ne yazık ki o modlarıyla sorunları olmuş görünmektedir.

Ben Ekran olanağı sağladığından benzer şekilde mevcut bir Emacs örneğine bağlı yerel bir çerçeveyi açmak için izin verir "emacsclient -t" komutunun (Emacs parçası), bir göz olacaktır yerine önermek hangi Önceden oluşturulan bir Screen örneğine yeniden bağlanmanız. Bu şekilde, TCP üzerinde kalıcı bir uzak Emacs örneğine yeniden bağlanmak için yerel bilgisayarınızdaki bir emacsclient'i yapılandırabilirsiniz.

1

Ben ekranını kullanmayın, ama belki bunu .bashrc'den çözebilirsin. Orada bir grup şartlı kodum var, xterm pencereleri için renk açıyor, ancak onu desteklemeyen diğer terminaller için bırakıyorum. M-x kabuk TERM değişkenini dilsizliğe ayarlar, böylece bunu test edebilir ve rengi buna göre ayarlayabilirsiniz.

case "$TERM" in 
dumb) 
## non-color settings here 
;; 
xterm) 
## color settings here 
;; 
*) 
## default (maybe you want non-color here?) 
;; 
esac 
İlgili konular