Я вообще не любитель шепелявых, но моя основная среда сценариев живет на emacs, и мне нужна помощь, чтобы запустить мой flymake / pyflakes, когда у файлов нет расширения .py. Потому что некоторые из скриптов здесь, на моей работе, не имеют расширения .py.
Это неплохо работает с pylint, pep8, pychecker и т. Д., Когда я читаю / кодирую файл с расширением .py.
;; flymake for python
(add-to-list 'load-path "~/.emacs.d/plugins/flymake")
(when (load "flymake" t)
(defun flymake-pylint-init (&optional trigger-type)
(let* ((temp-file (flymake-init-create-temp-buffer-copy
'flymake-create-temp-with-folder-structure))
(local-file (file-relative-name
temp-file
(file-name-directory buffer-file-name)))
(options (when trigger-type (list "--trigger-type" trigger-type))))
(list "~/.emacs.d/plugins/flymake/pyflymake.py" (append options (list local-file)))))
(add-to-list 'flymake-allowed-file-name-masks
'("\\.py\\'" flymake-pylint-init)))
(add-hook 'find-file-hook 'flymake-find-file-hook)
;; flymake help on minibuffer
(defun my-flymake-show-help ()
(when (get-char-property (point) 'flymake-overlay)
(let ((help (get-char-property (point) 'help-echo)))
(if help (message "%s" help)))))
(add-hook 'post-command-hook 'my-flymake-show-help)
Я попытался получить этот рабочий фрагмент инициализации, когда нет расширения .py. Я обернул приведенный выше код с помощью python-mode-hook и изменил раздел \ .py \ на что-то вроде \. * \.
Однако это вызывает функцию flymake-pylint-init не только для файлов Python. Он вызывает все, что открыто в emacs.
Кстати, я не могу использовать m-x flymake-mode для файлов без расширения, он не открывает этот второстепенный режим.
Я хотел бы получить любую идею, чтобы заставить его работать. Благодарность!