(съобщение %S load-path) и (describe-variable load-path) дават различни резултати

(message "%S" load-path) и (describe-variable 'load-path) дават различни резултати. Още няколко пътя като "/Users/updogliu/.emacs.d/elpa/flycheck-20140323.828" се появиха в последния.

Как мога да накарам (require 'flycheck) да използва "describe" load-path?


person updogliu    schedule 25.03.2014    source източник
comment
ако можете да го възпроизведете (различни стойности от message и describe-variable) с emacs -Q, моля, докладвайте го като грешка, като използвате report-emacs-bug.   -  person sds    schedule 25.03.2014
comment
Обадихте ли се на package-initialize във вашия init.el?   -  person lunaryorn    schedule 25.03.2014
comment
Трябва да разберете защо describe-variable и message връщат различни резултати. Най-вероятното обяснение, което виждам, е, че load-path има буферна локална стойност и че изпълнявате описваща променлива и съобщение от различни буфери. Но докато не можете да отговорите защо това се случва (и не сте дали достатъчно информация), никой не може да отговори на въпроса ви.   -  person Phil Lord    schedule 25.03.2014


Отговори (1)


За да настроите правилно Flycheck, не е необходимо да require Flycheck. Вместо това просто активирайте режима Global Flycheck:

(add-hook 'after-init-hook #'global-flycheck-mode)

Това ще активира Flycheck за всички поддържани езици.

За да накарате (require 'flycheck) да работи във вашия init.el, трябва да добавите (package-initialize) в самото начало на вашия init.el.

(package-initialize) настройва вградената пакетна система на Emacs, която включва добавяне на всички пакети към load-path. Emacs извиква това автоматично, но само след като вашият init.el бъде обработен, следователно използването на after-init-hook за активиране на Flycheck.

Ако сте добавили message повикване към вашия init.el, без първо да извикате (package-initialize), следователно ще видите стандартното load-path без нито един от вашите пакети.

За да направите вашите пакети налични във вашия init.el веднага, трябва да се обадите на (package-initialize) ръчно, в началото на вашия init.el.

person lunaryorn    schedule 25.03.2014
comment
Този отговор учи много и реши проблема ми. Благодаря ти много. - person updogliu; 25.03.2014
comment
Вижте също stackoverflow.com/questions/11127109/ - person phils; 26.03.2014