パッケージをブラックリストに登録する方法は?


8

company-mode補完目的で使用しています。しかし、どういうわけか、いくつかのパッケージは、常にで描くauto-completeと衝突するだけでなくcompany-mode、補完候補との申し出ポップアップ両方以来、。auto-complete必要ないのでブラックリストに載せたい。どうやってやるの?変数があることはわかっていますpackage-pinned-packageが、パッケージをブラックリストに登録する方法がわかりません。無効なアーカイブを使用している可能性があります。


1
それ自体は衝突しないことに注意してください。以下の場合はautocomplete-mode問題になるように、同じのために行く、最初に有効にする必要がありますcompany-mode
wasamasa 2016

何らかの理由で、カスタマイズを行わなくても有効になります。
アルネ2016

別のパッケージの要件である場合は、インストールする必要がありますが、autocompleteがアクティブになっているバッファーでアクティブにならないようにする必要がありますcompany-mode。おそらく、あなたは手動で無効にする必要がautocomplete*mode-hook影響を受けるすべてのメジャーモードの?
Mark Aufflick 2016

1
私はあなたが何をするかを知ることをお勧めします。それはあなた(そしてあなたのinitファイルの何か、スターターキットの受け入れ以来ずっとありそうになっている可能性)か別のパッケージ(これはバグです)のどちらかです。二等分と~/.emacs.d線に沿って何かを検索することの両方(auto-complete-mode)がうまくいくでしょう。
wasamasa

1
パッケージは通常、auto-complete-modeを有効にするべきではありません(非常に特殊な状況をいくつか保存します)。自分で有効にしていないことを100%確信している場合は、そのことを報告しているパッケージに問題を報告することをお勧めします。
マラバルバ2016

回答:


7

パッケージのインストールをブラックリストに登録する方法がわかりません。しかし、読み込みを防ぐのは簡単です。(provide 'auto-complete)initファイルを入れると、ロードしようとするパッケージには、auto-completeすでにロードされていることが通知されます。

(より正確には、これはを使用auto-completeして通常の方法でロードするライブラリを処理しますrequireload直接使用するコードがある場合(これは珍しいことです)、これをと呼ばれる別のファイルに配置する必要がありますauto-complete.el。)

もちろん、パッケージでが必要な場合はauto-complete、それを使用するためと考えられます。しかし、おそらくパッケージはオートコンプリートソースのみを宣言し、それ以外の場合は便利な機能を備えています。したがって、何もしないことを望まない部分を作成できます。パッケージの機能によっては、他の同様の定義が必要になる場合があります。

(provide 'auto-complete)
(defmacro ac-define-source (&rest ignored)
  "A no-op since I blacklist `auto-complete'.")

7

@ギレスが書いたのは、私も与えたであろう一般的な答えです。

ただし、を使用provideして、コードによるパッケージのロードが妨げられることはありませ。これにより、コードはによってのみパッケージをロードできなくなりますrequire。コードloadload-libraryload-fileなどを使用している場合、このトリックは効果がありません。

コードが特定のライブラリを読み込まないようにする必要がある場合は、代わりに読み込まれるプロキシライブラリを提供することをお勧めします。たとえば、の前の方にあるディレクトリに、以外は何もしないload-path偽のファイルauto-complete.elを追加します(provide 'auto-complete)

こうすることで、いつでもコードが使用してライブラリをロードしようとしloadたりload-library、プロキシライブラリーではなく、あなたが回避されている1つのロードされます。

ただし、コードload-fileが回避しようとしているライブラリのファイルの絶対アドレスを使用して提供する場合、そのファイルがロードされます。その場合の適切な解決策はありません(そのファイルを削除または置換する場合を除きます)。

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