ob-shellの初期化エラーをクリアするには、 `(shell。t)`を削除する必要がありますか?


8

最初の投稿。Emacsのインストールのトラブルシューティングに成功したかどうかを確認します。失敗した場合は、どこでどのように続行するかを指示します。

私のセットアップ:

  • Emacs 24.5
  • Macbook Pro Core Duo(2010年半ば)
  • OSX El Cap(10.11.4)

最近、EmacsをKierian Healyの[ https://kieranhealy.org/resources/emacs-starter-kit/](社会科学スターターキット)とともにインストールしました。インストール後に最初にEmacsを起動したとき、私が知る限り、何も機能しないというエラー(以下)を受け取りました。ただし、Emacsを初めて使用する場合は、確信が持てません。

インストールすると、起動時に次のエラーメッセージが表示されました。

Warning (initialization): An error occurred while loading     
`/Users/lmp/.emacs.d/init.el':

File error: Cannot open load file, no such file or directory, ob-shell

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file.  Start Emacs with
the `--debug-init' option to view a complete error backtrace.

ターミナルからデバッグモードでEmacsを起動しましたが、バックトレースを理解することができませんでした。そこで、問題のあるコード行が見つかるまで、init.elファイルのセクションをコメントアウトしました。

(org-babel-load-file (expand-file-name "starter-kit.org" dotfiles-dir)) 

したがって、starter-kit.orgファイルを開いて同じことを行うと、次のコードが表示されます

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

組織モードのWebサイトといくつかのフォーラムを検索した後、エラーを解消するために次のことを試みました。

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

. tコードの一部が真/偽のシグニファイアであることは私の理解です。しかし、それをファイルから削除することが賢明か愚かかは、私が知りたいことです。または、私の質問を最も明確な言葉で述べるには:

  1. 問題は正常に修正されましたか?そうでない場合、なぜでしょうか?
  2. 代わりにやるべきことはあり(shell . t)ますか、それとも削除することに加えてすべきことはありますか?

回答:


7

問題は正常に修正されましたか?承知しました!ob-shellひっくり返っていて、ロードを停止しました。つまり、ある意味で修正です。

つまり、あなたが見つけてコメントアウトしたコードの塊は、どの言語がorg babelによってロードされるかを制御します。これは、org内の非常に強力な関数です。シェルコードブ​​ロックの使用/評価に関心がある場合は、別の方法で取得したエラーを修正する必要があります。あなたは正しい- . t真実を値に関連付けます。この場合、orgソースブロックのシェルバックエンドを読み込む必要があることを示しています。

このすべてが言った:シェルバックエンドを実行したい場合、元の投稿には何が問題なのかを診断するのに十分な情報がありません。私の設定ファイルにはがないが(shell . t)、むしろ(sh . t)ます。再確認する必要があるのは、8より大きいバージョンのOrg Modeを使用していることですM-x org-version。これは、で実行できます。それを超えて、執筆の時点で提案することはほとんどありません。

そう!シェルソースブロックを使用しますか?はいの場合:より多くの問題を先に解決します!いいえの場合:修正しました!


ありがとう、@ Gastove統計用のRコードを使用して組織モードで学術論文を書くことができるように、Emacsに切り替えています。そのため、私が知る限り、シェルが必要です。近い将来、バベルとシェルのドキュメントを慎重に確認します。簡単なフォローアップ:に置き換え(shell . t)てみたところ(sh . t)、エラーも解消されました。これら2つは機能的に同じですか?
ルークMペレス

正直なところ、私は(shell . t)うまくいくと期待していました。(sh . t)動作することもわかっているので、それを提案しましたが、ローダーは少し気難しいものです。
Gastove 16

2
私は交換することを確認することができる(shell . t)ことで(sh . t)、ファイルに~/.emacs.d/starter-kit-org.org作品。少なくとも私のFreeBSDインストールでは。
ヘニング-モニカを2017年

5

同じ問題が発生しました。org-modeバージョン8.2.10が組み込まれた新しいEmacs 25.3を入手しました。Emacsを古いinitファイルで起動したとき、まったく同じものを取得しました。

File error: Cannot open load file, no such file or directory, ob-shell

エラーメッセージをグーグル検索して、この質問を見つけました。それから私は変更(shell . t)(sh . t)。エラーメッセージは解決したようです。

しかし、数日後、実際にを使用しようとしたorg-modeところ、組み込みバージョンに機能が不足していることがわかり、それを9.1.4に更新しました。次に、実際に何かを実行しているときに次のエラーが発生しましたorg-mode

Symbol’s function definition is void: org-babel-get-header

それから私はに変わっ(sh . t)(shell . t)問題を解決しました。

の名前がように私には思えたob-shから変更されたob-shob-shellバージョン8.2.10と9.1.4の間のどこか。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.