Я пытаюсь использовать flymake для запуска pyflakes, как предложено здесь
Это хорошо работает для локальных файлов и почти работает с удаленными файлами с небольшим количеством настроек, но у меня остается проблема, когда flymake/pyflakes "изменяет" буфер при его запуске (хотя ничего похожего не меняется), что делает его практически бесполезным на практике (например, сохранение файла запускает flymake, который сразу же модифицирует буфер).
Вот что я сделал, чтобы заставить его работать:
- Установлены pyflakes в удаленном окне.
- Настроить мою переменную
tramp-remote-process-environment
так, чтобы pyflakes можно было найти в ее PATH - Используется вариант кода из ссылки wiki выше. Очевидно, я исключил проверку, которая отключает ее для удаленных буферов. Кроме того, конструкция
(when (load "flymake" t) ...)
не работала так, как я ожидал, но я не слишком беспокоюсь об этом. - Переопределенный (для целей тестирования - это должно быть хорошо, если это может быть сделано для работы) функция
flymake-start-syntax-check-process
, чтобы она использовалаstart-file-process
(которая работает с tramp) вместо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)