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.