Kuruluş modunda kod bloklarında hata ayıklama


11

Kuruluş modu bloklarındaki izleme hatalarını kolaylaştırmak için kullanılabilecek herhangi bir araç var mı? (Özellikle python ile çalışıyorum)

Geçerli iş akışım, bir kaynak bloğa çalışan kodu kopyalamak ve yalnızca minimum değişiklikler yapmaya çalışmaktır. Büyük hatalar oluşursa, onu başka bir dosyaya kopyalarım veya bloğu dolaştırır ve ortaya çıkan dosyada hata ayıklarım.

Kaçırdığım herhangi bir araç var mı? (örneğin, hatanın bulunduğu satıra götüreceği derleme modu gibi bir şey.)

Düzenleme: örneğin, ben sadece noweb başvuruları genişletilmiş bir tampon getiriyor Cc Cv v bulundu. Ne yazık ki, üstbilgi bağımsız değişkenleri içermediğinden, bundan gelen kod önce yorumlayıcıya aktarılmadan çalıştırılamaz. Benzer şekilde, bir İfade deyim varsa, bu yürütülmesini engeller ve arabellek düzenlenebilir değil, bu nedenle bir python bloğundan çalıştırılabilir kaynak almak için birkaç adım alır.


3
Bkz. Emacs.stackexchange.com/questions/13244/… . Şu anki favori çözümüm (org-src-debug). Bunun avantajı, giriş kodu ile kaynak kodu bloklarında hata ayıklamaktır.
Tobias

Benzer sorunları olan diğer kullanıcılar için yorum yapın: user2699, python kaynak kodu bloklarında hata ayıklamak istediğini açıklamak için soruyu düzenledi . Tobias'ın son yorumu yalnızca emacs-lisp kod bloklarının yürütülmesi için geçerlidir .
Tobias

1
:sessionKod bloğunuza bir başlık eklediniz mi ? örn :session *my-python*. Ardından *my-python*, başka bir çerçeve veya pencerede arabellekte komut dosyası yürütülmesini izleyin . Sanırım bundan daha sofistike bir şey istiyorsun?
Melioratus

@Melioratus, biraz ilkel (hataları güzel işlemiyor gibi görünüyor ve python konsoluna ekstra çıktı ekliyor), ancak hiçbir şeyden çok daha iyi. Ve python konsolu çok güzel. Bunu bir cevap olarak göndermelisiniz.
user2699

@Tobias, Teşekkürler, aradığım şey bu, sadece elisp'e özgü değil.
user2699

Yanıtlar:


7

Yöntem 1

  1. :sessionKaynak bloğunuza başlık ekleyin .

    Örnekte ,: session üstbilgisini kullanmak, kodu arabellek adında çalıştırır *my-python*ve hata ayıklama iletileri görüntüler.

    #+BEGIN_SRC python :session *my-python*
      'Hello {0}\n'.format('World')
    #+END_SRC
    

    İpuçları:

    • C-c C-v C-zEkranı dikey olarak bölmek ve etkileşimli *my-python*arabelleği görüntülemek için kullanın .
    • C-c C-v ?Diğer kullanışlı kısayolları görüntülemek için kullanın .

Yöntem 2

  1. Kod bloğundaki noktayı yerleştirin ve C-c 'örn org-edit-special. Bu yöntem python-modeyerleşik işlevselliği kullanmanızı sağlar.

  2. C-c C-pPencereyi bölecek ve arabellek adını açacak olan python yorumlayıcısını başlatın *Python*. Python yorumlayıcı arabelleğine geçmek için tuşuna basın C-c C-z.

    Not: Son zamanlarda *Warnings*bunun yerine bir arabellek görüntülendiğini fark ettim . Noktayı *Warnings*tamponun içine yerleştirin ve tamponu qgörüntülemek için tuşuna basın *Python*.

  3. Tamamlandığında, güncellenmiş kodunuzu kod bloğuna geçirin C-c 'veya ile yapılan değişiklikleri atın C-c C-k.


Bu kod aşağıdakiler kullanılarak test edildiğine dikkat edin:
emacs sürüm: GNU Emacs 26.1
kuruluş modu sürümü: 9.1.14

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.