私は組織モードで読み書き可能なプログラムに取り組んでいます。プログラムのreplをセットアップするために使用する関数が.emacsにいくつかあります。これらの関数をorg-modeファイルに移動することは可能ですか?ファイルが開かれるたびに評価されます(バッファローカル変数のようですが、機能。)
1 に答える
5
eval
これは、特別なファイルローカル変数(強調鉱山)を使用して実行できるはずです。
一部の「変数名」は、ローカル変数リストで特別な意味を持ちます。
mode
指定されたメジャー モードを有効にします。eval
指定された Lisp 式を評価します(その式によって返される値は無視されます)。coding
このファイルの文字コード変換のコーディング システムを指定します。コーディング システムを参照してください。unibyte
値がt
. マルチバイトの無効化を参照してください。
たとえば、この最初の行を含む Org ファイル
# -*- eval: (message "foo"); -*-
または、ファイルの最後の 3000 文字内のこのようなブロック
# Local Variables:
# eval: (message "foo")
# End:
(message "foo")
ファイルが開かれたときに評価されます。
これはセキュリティ リスクであるため、ファイルを開くときにプロンプトが表示されます。を使用y
して、一度評価するか!
、安全な評価としてカスタム ファイルに保存して、今後のプロンプトを回避できます。
編集:
これは少し厄介ですが、ファイルの読み込み時に名前付きソース ブロックを評価する方法を次に示します。
# -*- eval: (progn (org-babel-goto-named-src-block "foo") (org-babel-execute-src-block-maybe)) -*-
#+NAME: foo
#+BEGIN_SRC emacs-lisp :results silent
(message "Yes, it worked")
#+END_SRC
残念ながら、名前付きブロックを直接呼び出す方法はありません。この方法では、セキュリティのプロンプトが2 回表示されます。1 回はコード ブロック用eval
、もう 1 回はコード ブロック用foo
です。
于 2014-04-18T14:17:06.257 に答える