Org-mode 9: incapaz de avaliar blocos de código

45

Minha configuração do Emacs mora dentro de um .orgarquivo do qual emaranhado os blocos de origem em um .elarquivo. Eu poderia avaliar os blocos de origem comC-c C-c

Hoje atualizei para o org-mode versão 9 do org elpa e agora avalio um bloco de origem como

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

com C-c C-cimprime a seguinte mensagem

Avaliação deste emacs-lisp code-blockis desativado.

No meu init.eljá defini os idiomas para org-babel:

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

Se eu carregar a versão Emacs de estoque do modo organizacional, posso emaranhar C-c C-cconforme o esperado. Não foi possível encontrar nenhuma alteração relacionada a isso no log de alterações do modo organizacional 9.

Como habilitar a avaliação de blocos de código no modo organizacional 9?

rrogg
fonte
1
Você tem os mesmos problemas quando usa org-babel-execute-src-block?
bertfred
Reinstale o modo org (exclua a pasta org .emacs.d/elpaprimeiro), esse problema já pode ter sido resolvido: lists.gnu.org/archive/html/emacs-orgmode/2016-11/msg00054.html
VanLaser
@bertfred resulta no mesmo comportamento que <kbd> Cc Cc </kbd>.
Rogg #
1
Eu tive o mesmo problema e tive que reinstalar com força (algo assim, mas não me lembro porque estava frustrado e não tomei notas: desinstalar, sair do emacs, excluir do elpa, iniciar o emacs, instalar do elpa, sair do emacs , inicie o emacs))
amitp 11/11
Estou muito triste em informar que esse problema parece ter retornado. O seguinte é de uma nova instalação em uma máquina vazia; a avaliação dos blocos de origem está desativada e não vejo como ativá-lo. Org-babel parece estar morto. (versão emacs) "GNU Emacs 25.1.1 (x86_64-apple-darwin13.4.0, NS appkit-1265.21 Versão 10.9.5 (Build 13F1911)) de 17/09/2016" (versão organizacional) "9.0.5"
perfil completo de Reb.Cabin

Respostas:

42

Eu acho que esse problema é causado pela mudança de org-babel-check-confirm-evaluateuma macro para uma função. Se você tiver org-mode(e, portanto, a macro antiga) carregado ao compilar o novo código, ele verá a macro antiga em vez da nova função.

Como outros usuários apontaram, a desinstalação do org-modeEmacs (sem carregamento org-mode) e a reinstalação resolverão o problema. Você também pode excluir os .elcarquivos compilados e recompilar com byte-recompile-directory.

erikstokes
fonte
Impressionante Eu tinha exatamente o mesmo problema, e eu não conseguia entender por que ele não estava funcionando
Joafigue
1
Sim, esta é uma boa explicação e solução. Mas encontrei a solução abaixo, por @ בנימן הגלילי, muito mais fácil do que desinstalar / reinstalar o modo org.
Modulitos 21/11
38

Para elaborar o @erikstokes:

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

onde ORGDIRNAMEé o nome do diretório ogrmode principal. Reinicie o emacs e agora você pode executar org-babelblocos de código.

בנימן הגלילי
fonte
1
Isso funcionou para mim com o org-9.1.13. É mais rápido que reinstalar. Observe que o nome do diretório organizacional provavelmente será diferente .
ephsmith
1
Isso funcionou para mim no spacemacs
prasad
4

para mim, desinstalar o pacote org-plus-contrib e reinstalá-lo resolveu-o.

zeltak
fonte
Reinstalando a mesma versão ou posterior?
JeanPierre
remova a versão atual e instale a mais recente do Melpa
zeltak 6/11/16
3

No Emacs 25.2 (9.0) e usando org-plus-contrib:

  • org-babel-execute-src-block me deu o mesmo erro que C-c C-c
  • excluir a .emacs.d/elpapasta e reinstalar não a corrigiu
  • mas M-x package-delete [RET] org-plus-contribe reinstalar com M-x package-install [RET] org-plus-contrib DID corrigi-lo
andador
fonte
0

Por padrão, a Org habilita apenas blocos de código emacs-lisp 'src' para execução.

org-babel-no-eval-on-ctrl-c-ctrl-c A variável pode ser usada para remover a execução do bloco de código da combinação de teclas "Cc Cc".

Arun Kumar Khattri
fonte
-1

Eu acho que você deve adicionar o seguinte código no seu .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
fonte
Eu geralmente recomendaria não adicionar nenhum tipo de requirearquivo de inicialização, porque isso diminui a inicialização.
Stefan
Eu não sabia disso até agora. Obrigado pelo conselho!
Takuya Ebata