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?


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.


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.


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.


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

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".


-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)))

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.