Kuruluş modu 9: kod blokları değerlendirilemedi


45

Emac'larım config, .orgkaynak blokları bir .eldosyaya dolaştırdığım bir dosyanın içinde yaşıyor . Kaynak bloklarını ile değerlendirebilirimC-c C-c

Bugün org elpa'dan org-mode versiyon 9'a geçtim ve şimdi böyle bir kaynak bloğu değerlendirdim

#+BEGIN_SRC emacs-lisp :tangle yes
(setq org-export-coding-system 'utf-8)
#+END_SRC

ile C-c C-caşağıdaki mesajı yazdırır

Bu emacs-lisp kod blokisinin değerlendirilmesi devre dışı bırakıldı.

Benim init.eldilimde org-babel dillerini zaten tanımladım:

(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . t)
  (org . t)
  (sh . t)))

Eğer org-mode'un Emacs versiyonunu yüklersem C-c C-c, beklendiği gibi karışabilirim . Org-mode 9'daki değişikliklerde bununla ilgili herhangi bir değişiklik bulamadım.

Org-mode 9'da kod bloklarının değerlendirilmesine nasıl izin verilir?


1
Kullanırken aynı sorunları org-babel-execute-src-blockmı yaşıyorsun ?
— bertfred

Org modunu yeniden yükleyin ( .emacs.d/elpailk önce org klasörünü silin ), bu sorun zaten çözülmüş olabilir: lists.gnu.org/archive/html/emacs-orgmode/2016-11/msg00054.html
— VanLaser

@bertfred, <kbd> Cc Cc </kbd> ile aynı davranışla sonuçlanır.
— rrogg

1
Aynı sorunu yaşadım ve yeniden yüklemek zorunda kaldım (bunun gibi bir şey vardı ama hatırlamıyorum çünkü sinirliydim ve not almadım: kaldırma, emacs'ı bırak, elpadan sil, emacs'ı başlat, elpa'dan yükle, emacs'ı bırak , emacs başlatmak))
— amitp

Bu sorunun geri döndüğünü bildirdiğim için çok üzgünüm. Aşağıdakiler taze bir kurulumdan çıplak bir makineyedir; kaynak blokların değerlendirilmesi devre dışı bırakıldı ve nasıl etkinleştireceğimi bilmiyorum. Org-babel ölü gibi görünüyor. (emacs sürümü) "GNU Emacs 25.1.1 (x86_64-apple-darwin13.4.0, NS appkit-1265.21 Sürüm 10.9.5 (Yapı 13F1911)) 2016-09-17" (org sürümü) "9.0.5"
— Reb.Cabin

Yanıtlar:


42

Bu sorun neden olur düşünmek değişim ait org-babel-check-confirm-evaluatebir işleve bir makro. Eğer varsa org-mode(ve dolayısıyla eski makro) yeni kod derleme yüklenen, bunun yerine yeni fonksiyonun eski makro görür.

Diğerleri Emacs'ı org-modeyeniden yüklemeyi (yükleme olmadan org-mode) kaldırmayı ve yeniden yüklemeyi belirttikleri gibi sorunu çözecektir. Ayrıca derlenmiş .elcdosyaları silebilir ve yeniden derleyebilirsiniz byte-recompile-directory.


Korku Ben de aynı sorunu yaşadım ve neden işe yaramadığını anlayamadım
— Joafigue

1
Evet, bu iyi bir açıklama ve çözüm. Ancak @ בנימן הגלילי tarafından org-mode'u kaldırmayı / yeniden yüklemeyi çok daha kolay buldum.
— modulitos

38

@Erikstokes üzerinde çalışmak için:

rm ~/.emacs.d/elpa/ORGDIRNAME/*.elc

burada ORGDIRNAMEçekirdek ogrmode dizinin adıdır. Emacs'i yeniden başlatın, şimdi org-babelkod bloklarını çalıştırabilirsiniz .


1
Bu benim için org-9.1.13 ile çalıştı. Yeniden kurmaktan daha hızlı. Kuruluş dizini adının büyük olasılıkla farklı olacağını unutmayın .
— Ephsmith

1
Bu benim için spacemacs üzerinde çalıştı
— prasad

4

benim için org-plus-katkıda paketini kaldırmak ve yeniden yüklemek çözüldü.


Aynı sürümü veya daha yenisini yeniden yüklemek mi istiyorsunuz?
— JeanPierre

Geçerli sürümü kaldır ve en son Melpa'dan yükle
— zeltak 6:16

3

Emacs 25.2'de (9.0) ve kullanma org-plus-contrib:

  • org-babel-execute-src-block bana aynı hatayı verdi C-c C-c
  • .emacs.d/elpaklasörü silmek ve yeniden kurmak sorunu çözmedi
  • ancak M-x package-delete [RET] org-plus-contribve birlikte yeniden M-x package-install [RET] org-plus-contrib MUYDUNUZ düzeltmek

0

Varsayılan olarak, Org yürütme için yalnızca emacs-lisp 'src' kod bloklarını etkinleştirir.

org-babel-no-eval-on-ctrl-c-ctrl-c değişken "Cc Cc" keybinding kod bloğu yürütülmesini kaldırmak için kullanılabilir.


-1

Bence içine aşağıdaki kodu eklemelisin .emacs.d/init.el.

;; ditaa
(require 'ob-ditaa)
(setq org-confirm-babel-evaluate nil)
(setq org-ditaa-jar-path
  "/path/to/ditaa-0_10.jar")
(org-babel-do-load-languages
  'org-babel-load-languages
  '((ditaa . t)
    (dot . t)))

Genellikle tavsiye ederim karşı her türlü ekleyerek requirebunu başlangıçta yavaşlar çünkü hiç kişinin init dosyası.
— Stefan

Bunu şimdiye kadar bilmiyordum. Tavsiye için teşekkürler!
— Takuya Ebata,
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.