Emacs'ta Scala geliştirmeyi yapmayı seviyorum ve zaman zaman, kodun snippet'lerini test etmek veya yazdığım bazı kodları yüklemek ve test etmek için REPL'yi kullanıyorum. Scala 2.9.1 kullanıyorum ve REPL'yi bir terminal arabelleğinde açtığımda bazı şeylerin önemli ölçüde kırıldığını fark ettim. Özellikle, geçerli satırdaki herhangi bir karakteri kaldıramıyorum ve imleci geçerli satırda geriye doğru hareket ettiremiyorum. Bu, bir şeyi yanlış yazdığım her zamanki gibi çok sinir bozucu, komuta yeni başlamalıyım. Emacs altında Scala REPL kullanarak başka birinin bu soruna sahip olup olmadığını ve herhangi bir potansiyel çözüm varsa, merak ediyorum.Scala REPL Emacs içinde
cevap
rlwrap (readline wrapper), emacs 'ansi-term ve scala ile iyi bir performans sergiliyor. Sadece "rlwrap scala" yı çağırın, tarihin yanı sıra normal bash satır düzenlemesine de sahip olacaksınız. Bonus olarak, geçmişiniz çok sayıda ölçekleme çağrısı içerecektir, bu yüzden Scala REPL'den çıktıktan sonra yazdığınız her şeyi kaybetmeyeceksiniz.
Eğer rlwrap sizin için işe yaramıyorsa, sadece hat-modunda (varsayılan olarak Cx Cj) satır moduna geçmeniz, satırdaki emacs tarzı düzenlemeyi kullanmanıza izin verir, ancak kabukludur ve tarih gibi tamamlanması.
Ensime daha önce bahsetti, bu yüzden kurulumun içinde sakıncası yoksa harika bir seçenek olarak ikinci kalacağım.
no'lu uç için Teşekkürler. Bu benim için gayet iyi görünüyor. Aslına bakarsanız, Ensime yaklaşımı üzerine rlwrap yaklaşımını seviyorum çünkü bana bir komut geçmişi veriyor. Şu anda, REPL'yi rlwrap yaklaşımını kullanarak EmPs'ler aracılığıyla başlatmanın tek kısıtlılığı, sekmeyi tamamlama özelliğini kullanamamasıdır. – nomad
REPL'de emacs aracılığıyla nasıl sekme tamamlandı? – CodeKingPlusPlus
ENSIME ve follow instructions yükleyebilirsiniz. REPL'yi çağırmak için yolunuzu bilmiyorum, ama ENSIME'den gelen REPL isimleri (imlecin geriye doğru gitmesine ve sembollerin silinmesine izin veriyor, ben kontrol ettim).
Bahşiş için teşekkürler. Bu problemi çözen REFER'in REPL'yi çağırması gibi görünüyor, ancak birkaç tane daha tanıtıyor. Özellikle, Ensime ile çağrılan REPL'nin bir komut geçmişi yoktur ve sekme tamamlama yeteneğine sahip görünmemektedir. ENSIME için – nomad
+1, ENSIME –
REPL'i Emacs içinde nasıl başlatıyorsunuz? – leedm777
Ansi süreli yeni bir arabellek açtım. Daha sonra, bu terminal tamponunda, REPL'i doğrudan "scala" yi arayarak veya sbt konsolunu kullanarak başlatacağım. Her iki durumda da, bu sorun ortaya çıkmaktadır. – nomad
Kabukla yeni bir arabellek açmak ve kabuktan scala veya sbt başlatmak için daha iyi şansınız olabilir. – leedm777