В случае сбоя (require)
выдаст ошибку.Это действительно все, что вам нужно.
Если вы хотите настроить поведение ECB только тогда, когда оно доступно, обратите внимание, прежде всего, на добавление чего-либо в ecb-hook
- это обычный способ условной настройки пакета Emacs.
Если нет доступного крючка или вы по какой-то причине хотите его свернуть, попробуйте что-то вроде
(eval-after-load 'ecb '(setq ecb-be-more-like-better-yes-p t))
Если вы действительно хотите бросить его вручную, вы можете поймать его в ловушкуошибка из-за сбоя require
, например:
(condition-case nil
(progn
(require 'ecb)
(setq ecb-be-more-like-better-yes-p t) )
(file-error (message "ECB not available; not configuring") ))
Обратите внимание, что condition-case
будет ловить любой file-error
изнутри progn
, поэтому вы хотите убедиться, что вы ничего не делаетедругие файловые операции внутри.В конечном итоге вы можете захотеть поместить только require
в condition-case
и использовать это как условие для вашей исходной формы if
, но это уже выходит из-под контроля ...
(if (condition-case nil (require 'ecb) (error nil))
(setq ecb-be-more-like-better-yes-p t)
(message "ECB not available; not configuring") )