Org-mode 9: tidak dapat menghindari blok kode

45

Konfigurasi Emacs saya tinggal di dalam sebuah .orgfile dari mana saya kusut blok sumber ke .elfile. Saya dapat mengevaluasi blok sumber denganC-c C-c

Hari ini saya memperbarui ke mode-org versi 9 dari org elpa dan sekarang mengevaluasi seperti blok sumber

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

dengan C-c C-cmencetak pesan berikut

Evaluasi kode-blok emacs-lisp ini dinonaktifkan.

Di saya, init.elsaya sudah mendefinisikan bahasa untuk org-babel:

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

Jika saya memuat stock Emacs versi org-mode saya bisa kusut C-c C-cseperti yang diharapkan. Saya tidak dapat menemukan perubahan mengenai hal ini di changelog untuk mode-org 9.

Bagaimana cara mengaktifkan evaluasi blok kode dalam mode-org 9?

rrogg
sumber
1
Apakah Anda memiliki masalah yang sama, saat digunakan org-babel-execute-src-block?
bertfred
Instal ulang mode-org (hapus folder org dari .emacs.d/elpadulu), masalah itu mungkin sudah dipecahkan: lists.gnu.org/archive/html/emacs-orgmode/2016-11/msg00054.html
VanLaser
@bertfred menghasilkan perilaku yang sama dengan <kbd> Cc Cc </kbd>.
rrogg
1
Saya memiliki masalah yang sama dan harus menginstal ulang dengan keras (sesuatu seperti ini tetapi saya tidak ingat karena saya frustrasi dan tidak membuat catatan: mencopot, keluar dari emacs, menghapus dari elpa, mulai dari ema, memulai dari ema, menginstal dari elpa, berhenti emacs , mulai emacs))
amitp
Saya sangat sedih melaporkan bahwa masalah ini tampaknya telah kembali. Berikut ini adalah dari instalasi baru ke mesin telanjang; evaluasi blok sumber dinonaktifkan, dan saya tidak melihat cara mengaktifkannya. Org-babel sepertinya sudah mati. (emacs-version) "GNU Emacs 25.1.1 (x86_64-apple-darwin13.4.0, NS appkit-1265.21 Versi 10.9.5 (Build 13F1911)) dari 2016-09-17" (versi org) "9.0.5"
Reb.Cabin

Jawaban:

42

Saya pikir masalah ini disebabkan oleh perubahan dari org-babel-check-confirm-evaluatemakro ke fungsi. Jika Anda telah org-mode(dan dengan demikian makro lama) memuat ketika Anda mengkompilasi kode baru, itu melihat makro lama alih-alih fungsi baru.

Seperti orang lain telah menunjukkan mencopot pemasangan org-modeulang Emacs (tanpa memuat org-mode) dan menginstal ulang akan memperbaiki masalah. Anda juga dapat menghapus .elcfile yang dikompilasi dan mengkompilasi ulang dengan byte-recompile-directory.

erikstokes
sumber
Luar biasa, saya memiliki masalah yang sama persis, dan saya tidak mengerti mengapa itu tidak berhasil
Joafigue
1
Ya, ini adalah penjelasan dan solusi yang bagus. Tapi saya menemukan solusinya di bawah ini, dengan @ בנימג הגלילי jauh lebih mudah daripada menghapus / menginstal ulang mode-org.
modulitos
38

Untuk menguraikan @erikstokes:

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

di mana ORGDIRNAMEadalah nama direktori ogrmode inti. Mulai ulang emacs dan sekarang Anda dapat menjalankan org-babelblok kode.

בנימן הגלילי
sumber
1
Ini bekerja untuk saya dengan org-9.1.13. Ini lebih cepat daripada menginstal ulang. Perhatikan bahwa nama direktori org mungkin akan berbeda .
ephsmith
1
Ini bekerja untuk saya di ruang angkasa
prasad
4

bagi saya mencopot paket org-plus-contrib dan menginstalnya kembali menyelesaikannya.

zeltak
sumber
Menginstal ulang versi yang sama atau yang lebih baru?
JeanPierre
hapus versi saat ini dan instal terbaru dari Melpa
zeltak
3

Pada Emacs 25.2 (9.0) dan menggunakan org-plus-contrib:

  • org-babel-execute-src-block memberi saya kesalahan yang sama dengan C-c C-c
  • menghapus .emacs.d/elpafolder dan menginstal ulang tidak memperbaikinya
  • tetapi M-x package-delete [RET] org-plus-contribdan instal ulang dengan M-x package-install [RET] org-plus-contrib DID memperbaikinya
Pejalan
sumber
0

Secara default, Org hanya mengaktifkan blok kode emacs-lisp 'src' untuk dieksekusi.

org-babel-no-eval-on-ctrl-c-ctrl-c variabel dapat digunakan untuk menghapus eksekusi blok kode dari penjilidan kunci "Cc Cc".

Arun Kumar Khattri
sumber
-1

Saya pikir Anda harus menambahkan kode berikut di blog Anda .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)))
Takuya Ebata
sumber
Saya biasanya merekomendasikan untuk tidak menambahkan apa pun requireke file init seseorang, karena memperlambat startup.
Stefan
Saya tidak tahu itu sampai sekarang. Terima kasih atas sarannya!
Takuya Ebata