2013-12-26 5 views
1

Ниже приведены фрагменты в моей init.el отношение к Flymake:Как завершить отключить flymake и все, к чему он привязан?

(add-hook 'python-mode-hook 
     (lambda() 
     (unless (eq buffer-file-name nil) (flymake-mode 1)) ;dont invoke flymake on temporary buffers for the interpreter 
     (local-set-key [f2] 'flymake-goto-prev-error) 
     (local-set-key [f3] 'flymake-goto-next-error) 
     (local-set-key [f4] 'flymake-display-err-menu-for-current-line) 
     (hs-minor-mode) 
     (orgtbl-mode) 
     (outline-minor-mode -1))) 

... 

;;===== PyFlakes 
;; code checking via pyflakes+flymake 
(when (load "flymake" t) 
    (defun flymake-pyflakes-init() 
    (let* ((temp-file (flymake-init-create-temp-buffer-copy 
       'flymake-create-temp-inplace)) 
     (local-file (file-relative-name 
      temp-file 
      (file-name-directory buffer-file-name)))) 
     (list "pychecker" (list local-file)))) 

    (add-to-list 'flymake-allowed-file-name-masks 
      '("\\.py\\'" flymake-pyflakes-init))) 

(mapcar (lambda (hook) (add-hook 'find-file-hook hook)) 
    (list 'flymake-find-file-hook)) 

(unload-feature 'flymake) ; unloaded in an attempt to get rid of the error 

Но каждый раз, когда я find-file или revert-buffer (расширения .xml, .php, .html) Я получаю следующее сообщение об ошибке (не с .py):

Flymake: Не удалось запустить процедуру проверки синтаксиса «php» с помощью args (-f _posteddata_flymake.php -l): Поиск программы: разрешение отказано, php. Flymake будет выключаться

или

Flymake: Не удалось запустить процесс проверки синтаксиса 'XML' с арг (VAL //path/to/file/config/prod-conf_flymake.xml): Поиск программы: разрешение отклонено, xml. Flymake будет выключен

Я также пробовал делать (load "flymake" nil), но это тоже не сработало.

Большое время, когда вы открываете или перезагружаете большой кусок файлов.

Как это исправить?

+1

Не совсем решение, но дайте [flycheck] (http://flycheck.github.io/) попробовать. Это flymake, который работает из коробки с большинством языков и конфигураций и не сосать. –

+0

Кстати, '(load" flymake "nil)' не делает, что вы думали, а именно выгружать библиотеку. Это будет 'unload-feature', но библиотека должна явно поддерживать разгрузку, а Flymake этого не делает. – lunaryorn

ответ

3

Только не добавляйте Flymake в find-file-hook. Вместо этого добавьте его только к крючкам основных режимов, которые вы хотели бы использовать.

Возможно, вы также захотите посмотреть альтернативный пакет Flycheck, который более безопасен для глобального использования, поддерживает больше языков и требует многого меньше настройки. Отказ от ответственности: я являюсь автором этого пакета.

+0

Теперь, когда крюк на месте, как я могу избавиться от него? –

+0

Uhm, ну, просто удалите соответствующую строку в часовом фрагменте конфигурации. – lunaryorn

+0

На работающем Emacs? ;) –