org-plus-contribおよび `require`または` use-package`を使用した組織


8

またはを使用org-plus-contribして組織モードのリポジトリからダウンロードして使用していることを確認するにはどうすればrequireよいuse-packageですか?Package.elパッケージをダウンロードし、すべてをコンパイルしてから、ロードできないと言いますorg-plus-contrib。メーリングリストのこのスレッドは、似ているが逆転した問題について議論しています。ただし、を配置する(use-package org ...use-packageが返されますがt、がorg-plus-contribインストールされているかどうかに関係なくそうします。


なぜ単純ではないのです(use-package org-plus-contrib :ensure t)か?パッケージ管理にパレット付きのキャスクを使用していることを認めましたが、パスに/home/kmicu/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150202を配置してロードします。
kmicu 2015

ことを忘れないでくださいORG-プラスにcontribが含まれている組織のファイルに加えて、すべての投稿記録ファイルを。org xor org-plus-contribをインストールする必要がありますが、両方はインストールしないでください。
kmicu 2015

たぶんあなたは試すことができますpackage-pinned-packages
csantosb

回答:


4

requireor だけで本当に確実にチェックできるかどうかは100%use-packageわかりませんが、org.mode機能にpackage.elを使用している場合、パッケージが初期化されるまで、org-modeの設定を延期する必要がある場合があります。これは、Emacsが初期化された後に「after-init-hook」と呼ばれるフックを実行して行うことができます。

そう...

つまり、.emacsでは、次のようなフックが必要になります。

(add-hook 'after-init-hook 'package-config)

そして他のどこか:

(defun package-config ()
;;Your org-mode config goes here.
)

その後、package.elのチェックおよびダウンロード機能にアクセスできます...

したがって、パッケージの存在も確認する必要があるため、「(package-installed-p 'org-plus-contrib)」を使用して、「」がインストールされて(package-install package)いない場合は、「」でインストールできます。

まとめると、コードはおそらく次のようになります。

(defun package-config ()
  (unless (package-installed-p 'org-plus-contrib)
    (package-refresh-contents)
    (package-install 'org-plus-contrib)))

(add-hook 'after-init-hook 'package-config)

残りの構成は(unless ...)本体の後にあります。

このようにして、構成を取得し、パッケージのインストールチェックを取得し、自動的にダウンロードするので、関数内のその行を過ぎたものはロードされたcontribsを使用できると安全に想定できます。(ネットワーク接続がない場合は、ネットワークに接続していると仮定します。)


17

use-packageでこれを行う正しい方法は次のとおりです。

(use-package org
  :ensure org-plus-contrib
 ...

最初の引数は、ソースとなるorg.elファイルであることを確認します。:ensure引数は、すべての追加機能を備えたバージョンを取得していることを確認します。もちろん("org" . "http://orgmode.org/elpa/")、パッケージアーカイブのリストにも含める必要があります。


ブール値である必要がないことを確認できませんでした。知っておきたい!
wdkrnls 2015年


私は私の設定でこれを使用していますが、サードパーティのパッケージ(たとえば、elfeed-org)がuse-packageでインストールされると、デフォルトの組織がダウンロードされてインストールされます。これは正しくありません。どうすればそれを防ぐことができるでしょうか。
andreas-h 2017

0

私はpackage-install org-plus-contribを手動で行いますが、その後use-package orgを行います。最後に、後続のMx org-versionは、org-plus-contribによって提供される組織が実際に使用されており、すべて正常であることを示しています。


興味深いことに、機能を提供する投稿を使用していますか?
wdkrnls 2015

はい、いくつかありますが、現時点では覚えていません。
Joe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.