Я пытаюсь использовать flymake для запуска pyflakes, как было предложено здесь
Это отлично работает для локальных файлов и почти работает с удаленными файлами с небольшой настройкой, но у меня осталась проблема, когда flymake / pyflakes `` изменяет '' буфер при запуске (хотя на самом деле ничего не меняется), что отображает на практике это немного бесполезно (например, при сохранении файла запускается flymake, который немедленно снова изменяет буфер).
Вот что я сделал, чтобы он почти заработал:
- Установил pyflakes на удаленный ящик.
- Настроил мою переменную
tramp-remote-process-environment
так, чтобы pyflakes можно было найти в ее PATH - Использовал вариант кода из вики-ссылки выше. Очевидно, я исключил проверку, отключающую его для удаленных буферов. Кроме того, конструкция
(when (load "flymake" t) ...)
, похоже, не сработала так, как я ожидал, но меня это не особо беспокоит. - Переопределено (для целей тестирования - совет должен подойти, если это можно заставить работать) функцию
flymake-start-syntax-check-process
, чтобы она использовалаstart-file-process
(который работает с трампом) вместоstart-process
(который не работает).
Изменение в # 4, похоже, не вызывает каких-либо проблем при обработке локального файла, но хотя теперь это позволяет flymake запускать удаленные pyflakes для удаленных файлов (ошибки подсвечиваются, как и ожидалось), в этом случае буфер «модифицирован» всякий раз, когда запускается flymake.
Я предполагаю, что start-file-process
для удаленных процессов приводит к некоторому дополнительному возвращаемому значению / данным, которого нет для локальных процессов.
У кого-нибудь есть идеи / советы?
- Emacs 23.1 и 23.2 в Ubuntu
- Python 2.4.6
- Pyflakes 0.4.0 (через easy_install)