0

私のコンピューターには、Debian パッケージ システムと共に Emacs プラグインがインストールされていますが、このプラグインは廃止されており、package-install を使用してホーム ディレクトリ内にインストールしようとしています。新しいバージョンをインストールしましたが、ロードされているバージョンを確認すると、古いバージョンがロードされています。

新しいバージョンへのグローバル パスを試してみましload-fileたが、それでも古いバージョンが読み込まれます。

新しいものを強制的にロードするにはどうすればよいですか? 私はコンピューターのシステム管理者ではなく、どのソフトウェア パッケージもアンインストールできないと想像してください。

4

2 に答える 2

1

ライブラリに複数のファイルが含まれている場合、1 つのメイン ファイルが必要に応じて他のファイルをロードすると想定できます。ただし、ディレクトリが にない場合、load-pathそれらをロードすることはできません (または少なくともそれらのバージョンをロードすることはできません)。したがってload-file、それ自体ではうまくいきません。

私自身はpackage.elをあまり使用していませんが、ロードパスを管理して、他のものよりも優先されると本当に思っていましたsite-lisp(おそらく、debianパッケージがインストールしているところです)。

実行emacs --no-site-lispして、正しいバージョンのライブラリがロードされていることを確認してください。サイト ライブラリから何も必要ない場合は、それが解決策になることもあります。

load-pathそれが機能する場合は、 Emacs を正常に起動した後で変数を確認してください。絶対パスが指定されない限り、Emacs はそれらのディレクトリを順番に調べ、最初に一致したものを使用します。何らかの理由で、site-lisp ディレクトリが package.el によって作成されたディレクトリの前に表示されていると思います。

または、パッケージがまったく正しくインストールされなかった可能性があります。

つまり、少なくとも Emacs 24.3 では(package-initialize)自動的に呼び出されるため、手動で何かをロードする必要はないと思います。package-load-list変数を確認してください。

編集:

その最後の注意事項については、cannot open load dired-details を参照してください。

当時、Emacs はユーザーの init ファイルが読み込まれるまでパッケージを初期化しないことに気づいていなかったので、通常init ファイルで手動で初期化する必要があります。

于 2013-06-18T09:10:28.310 に答える
0

これを試して

(defun please-load-my-stuff ()
  (interactive)
  (load "PATH-TO-STUFF/STUFF))

init にアクセスする場合は、フォーム "(load ...)" をそこに置きます。複数のファイルが必要な場合は、load-pathロード前にそのように設定する必要があります。これにより、他の必要なファイルにアクセスできるようになります。

于 2013-06-18T08:12:35.363 に答える