は私の試みです:モジュールをlinuxで読み込むには?ここ
(if (eq system-type 'gnu/linux)
(load "/usr/share/emacs/site-lisp/site-gentoo")
(require 'site-gentoo))
しかし、とにかく、私は窓にエラーが表示されます。
/.emacs':
File error: Cannot open load file, site-gentoo
は私の試みです:モジュールをlinuxで読み込むには?ここ
(if (eq system-type 'gnu/linux)
(load "/usr/share/emacs/site-lisp/site-gentoo")
(require 'site-gentoo))
しかし、とにかく、私は窓にエラーが表示されます。
/.emacs':
File error: Cannot open load file, site-gentoo
あなたの問題はあなたがif
を使用する方法である:そのドキュメントは、それが
(if COND THEN ELSE...)
すなわちだと言いますあなたの(require 'site-gentoo)
がでない場合にのみ実行されます。はGNU/Linuxシステムです。
代わりにwhen
を使用してください。これは意図したとおりに行う必要があります。
また、実際にはload
とrequire
の両方を使用する必要はありません。その使用法は同じ結果になるはずです。違いはほとんどがrequire
はload-path
を検索し、前に既に読み込まれたものを再度読み込まないことです。
それは次のようになります。
(if (eq system-type 'gnu/linux)
(progn
(load "/usr/share/emacs/site-lisp/site-gentoo")
(require 'site-gentoo)))
または
(when (eq system-type 'gnu/linux)
(load "/usr/share/emacs/site-lisp/site-gentoo")
(require 'site-gentoo))
代わりにトリックを行う必要があります
(add-to-list 'load-path "/usr/share/emacs/site-lisp/")
:(load "/usr/share/emacs/site-lisp/site-gentoo")
のあなたはload-path
にロードファイルを含むフォルダを追加する必要があります。 require
は、load-path
のファイルに対してのみ機能し、load
は、パラメータとして与えられたlispファイルを評価します。
RördとBozhidar Batsovは、解決方法についての回答をすでに提供していますが、元のコードが失敗した理由を追加するだけです。
(if COND THEN ELSE...)
は、単一のTHEN
コマンドのみを受け入れます。 trueを返すときに複数のコマンドを評価できるようにするには、コマンドを(progn BODY...)
にラップする必要があります。
あなたのコードは述べた:
Linuxの場合:(load "/usr/share/emacs/site-lisp/site-gentoo")
ない場合をLinux上:(require 'site-gentoo)
目的のソリューションを提供します両方(progn ...)
に(when ...)
やラッピングを使用します。
ありがとうございました。 – Cynede