ロードファイルとロードの違い


17

私は両方の機能のドキュメントを調べましたが、多くの情報を流していないようです。loadload-fileはインタラクティブなリストコンパイルされた関数であるのに対して、Cソースコードの組み込み関数であるという事実を除いて、実際の違いは何ですか。

init.el両方が同じ仕事をしているように見えるので、使用する推奨機能は何ですか?


2
この点に関して、ドキュメントのどの部分が明確ではありませんでしたか?本当に問題があると思われる場合は、docの問題を報告することを検討してくださいM-x report-emacs-bug。@shostiが言うように、そしてドキュメントが明確に示しているように、2つの重要な違いのために、load-file「を使用せずload-path、サフィックスを追加しません」。
ドリュー

Emacsのマニュアル、ノードLispライブラリも参照してください。
ドリュー

回答:


14

EmacsでLispファイルをロードするにはいくつかの方法があります:

  1. load-fileリテラルファイル名(相対または絶対)を取り、コードをロードします。例:(load-file "/usr/local/share/site-lisp/foo.el")
  2. loadに似load-fileていますが、より柔軟性があります。拡張機能を省略でき、必要に応じて「elc」または「el」ファイルが自動的にロードされます。
    また、load-pathディレクトリも調べます。
    例:((load "foo")"foo.el"が現在のディレクトリまたはload-path "にある場合)。
  3. load-libraryはのインタラクティブなインターフェースですload
  4. requireに似てloadいますが、ファイルが複数回ロードされるのを防ぎます(provide問題のファイルの最後に対応するステートメントが必要です)。例:(require 'foo)

3
あなたのrequire例はload例です。;-)
ドリュー

load-file例では、使用していますload。:)
itsjeyd 14年

2
2と3が間違っていたと言って申し訳ありません。:-) load load-pathを調べます。
マラバルバ14年

@Malabarbaおっと、あなたは正しい、訂正してくれてありがとう。それは私が思っていたよりも複雑です。
shosti 14年

8

load-fileload-libraryは、対話的に使用するためのコマンドです(主な違いはプロンプトの最初の内容です)。

loadElispを記述するときに使用する基本関数です(.emacsなど)。

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