Как я могу заставить emacs прекратить загрузку viper-mode? - PullRequest
2 голосов
/ 15 апреля 2011

Я разрабатываю режим для Emacs , и каждый раз, когда я переключаюсь на его буфер, включается viper.Я изменил viper-mode на trace , где вызывается viper-mode, и неожиданно set-viper-state-in-major-mode вызывается при запуске viper-post-command-hooks , установлен в ноль.Любая идея о том, что происходит?

Спасибо!


РЕДАКТИРОВАТЬ : Вот что я узнал на благо всех существ: в соответствии с указаниямиTrey, я запустил emacs с -Q и вручную загрузил и viper, и мой пакет.Как я мог воспроизвести ошибку, проблема была в одном из этих пакетов.После построчной фильтрации я обнаружил, что проблема вызывает невинный вид (kill-all-local-variable).

Ответы [ 4 ]

4 голосов
/ 15 апреля 2011

Что-то в инициализации вызывает это.

Сначала попробуйте начать без вашего .emacs emacs -q . Если проблема не устранена, то триггер находится в site-start.el. Итак, поговорите с кем-нибудь, кто установил Emacs, и попросите их удалить настройки. Вы также можете всегда использовать опцию запуска -Q , чтобы избежать загрузки site-start.el.

Если проблема не в site-start.el, и вы не думаете, что это в вашем .emacs, это может быть в пользовательском файле default.el, который вы можете предотвратить загрузкой, добавив:

(setq inhibit-default-init t)

к вашему .emacs.

Если у вас все еще есть проблема, то я на 99% уверен, что она в вашем .emacs.

Чтобы быть на 100% уверенным, попробуйте emacs -Q , который запускает Emacs без настроек. Если проблема не устранена, загрузите и установите свой собственный Emacs b / c, который, безусловно, не может доверять установке, которую вы используете.

Итак, теперь, если вы уверены, что он в вашем .emacs, начните вырезать части вашего .emacs или внесите ошибку в ваш .emacs с помощью (error "frog") и постепенно исключайте, какие части вашего .emacs вызывают проблему.

g'luck

3 голосов
/ 15 апреля 2011

Функция kill-all-local-variables будет запускать все функции, добавленные в change-major-mode-hook, это обычный способ для глобальных второстепенных режимов инициализировать себя.Например, глобальная блокировка шрифта и глобальный режим cwarn используйте это.

Я сам не использовал viper , но есть вероятность, что ониспользовать этот механизм.Конечно, вам все равно пришлось бы включить его в файле инициализации, так что если вы просто перестанете это делать, это также решит вашу проблему.

0 голосов
/ 15 апреля 2011

Попробуйте удалить файл конфигурации ~/.viper, а также проверьте в .custom.el настройки, которые могут запустить Viper в вашем основном режиме (или глобально).

0 голосов
/ 15 апреля 2011

Попробуйте комментировать любые ссылки на режим viper в вашем .emacs.Меня не отправляют в режим гадюки, если я не начну играть с режимом гадюки до того, как начну тестировать ваш новый режим.

Возможно, с этим утверждением сделано больше, чем вы думаете:

  (use-local-map ecoli-map)

Попробуйте изменить некоторые привязки на своей карте.например.от j до Cj и от k до Ck.

Может быть, Emacs запутался?

...