Vérifiez toujours PEP8 lors de l'édition du code source Python dans Emacs

Hier a écrit sur la convention de codage Python PEP8 ..

Lors de l'écriture du code source Python dans Emacs, il serait encore plus utile que la conformité PEP8 soit constamment vérifiée et visualisée.

Avec le Lisp Emacs introduit ici, les violations de conformité PEP8 sont toujours visibles sur Emacs comme indiqué ci-dessous.

1.png

De plus, uniquement lors de l'édition de Python, vous pourrez afficher les résultats de la vérification PEP8 dans le mini-tampon avec des raccourcis clavier spécifiques.

Prérequis Emacs Lisp

Tout d'abord, préparez Emacs Lisp, qui est une condition préalable au développement de Python avec Emacs.

python-mode.el

Il existe plusieurs modes majeurs en Python, mais ma recommandation est python-mode.el.

python-mode.el http://www.emacswiki.org/emacs/PythonProgrammingInEmacs

C'est la plus riche en fonctionnalités.

flymake-cursor.el

Fonctionne avec flymake, qui est la valeur par défaut depuis Emacs 23, pour afficher une erreur flymake sur la ligne courante sur le mini-tampon.

flymake-cursor.el https://github.com/illusori/emacs-flymake-cursor

Définir le mode Python

Dans l'article hier (when (load "python-pep8") (define-key global-map "\ Cc \ p" 'python-pep8)) Cependant, cela provoque la vérification de pep8 avec Cc p lors de l'édition d'un fichier. C'est donc une bonne idée d'utiliser le hook en mode python et de l'activer uniquement lors de l'édition de Python.

Dans cet esprit, écrivez les paramètres du mode python dans Emacs Lisp comme suit:

;; python-Mode de chargement
(when (autoload 'python-mode "python-mode" "Python editing mode." t)
  ;; python-python uniquement en mode-Activer les raccourcis clavier pour pep8
  (setq python-mode-hook
  (function (lambda ()
    (local-set-key "\C-c\ p" 'python-pep8))))
  (setq auto-mode-alist (cons '("\\.py$" . python-mode) auto-mode-alist))
  (setq interpreter-mode-alist (cons '("python" . python-mode)
                                     interpreter-mode-alist)))

;; flymake for python
(add-hook 'python-mode-hook 'flymake-find-file-hook)
(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))))
      ;;Spécifiez votre propre script shell introduit hier
      ;;Veuillez modifier en fonction de chaque environnement
      (list "/usr/local/sbin/pyck"  (list local-file))))
  (add-to-list 'flymake-allowed-file-name-masks
               '("\\.py\\'" flymake-pyflakes-init)))
(load-library "flymake-cursor")

C'est l'état introduit au début. L'erreur que vous voulez ignorer peut être spécifiée dans le script shell appelé ci-dessus et dans python-pep8.

Pour ignorer l'erreur dans python-pep8.el, éditez Emacs Lisp et passez-le comme option pour pep8 comme suit:

(defcustom python-pep8-options '("--ignore=E302")
  "Options to pass to pep8.py"
  :type '(repeat string)
  :group 'python-pep8)

Résumé

Les paramètres d'Emacs sont différents pour chaque personne, mais si vous créez un environnement facile à développer pour chaque personne à partir de ce contenu, vous serez plus heureux.

Recommended Posts

Vérifiez toujours PEP8 lors de l'édition du code source Python dans Emacs
Vérifiez le style de code python à l'aide de pep8
Je veux écrire en Python! (1) Vérification du format de code
Ruby, exécution de fragments de code Python de la sélection dans Emacs
Supprimer les commentaires sur une ligne, y compris le japonais du code source en Python
Script de vérification de code de caractère de code source
Générer du code QR en Python
Code de caractère appris en Python
Comment enregistrer une interruption comme vu dans le code source
Afficher le code source de l'implémentation dans iPython
Flux du code source à la création du format d'exécution
La syntaxe met en évidence le code source dans PowerPoint / Keynote
Traitement de fichiers en Python
Traitement multithread en python
Traitement de texte avec Python
Traitement des requêtes en Python
Supprimer les commentaires sur une ligne, y compris le japonais du code source en Python
Vérifiez toujours PEP8 lors de l'édition du code source Python dans Emacs
[PEP8] Reprenez le code source Python et écrivez-le proprement
Rechercher les fuites de mémoire dans Python
Rechercher des commandes externes avec python
[Python] Générer un code QR en mémoire
Formater automatiquement le code Python avec Vim
Vérifiez et déplacez le répertoire en Python
[Python] Lire le code source de Flask
Tests de code dans le temps en Python
Comment vérifier automatiquement si le code que vous avez écrit dans Google Colaboratory correspond à la norme de codage python "pep8"
Ce que les utilisateurs d'Emacs doivent savoir lors de l'écriture de code Python dans Sublime Text
Code de vérification de la série Fourier écrit en Python
Afficher le code source de l'implémentation dans iPython
Vérifiez le comportement du destroyer en Python
Vérifier et recevoir le port série en Python (vérification du port)
Obtenez des métriques de code source Python à l'aide de radon
Vérifiez si l'URL existe en Python
Générer automatiquement un commentaire de chaîne de document Python avec Emacs
Comment vérifier la version d'opencv avec python
python> guide de codage> PEP 0008 --Style Guide for Python Code
Rechercher et vérifier la matrice inverse en Python
Obtenir la liste de codes EDINET en Python
La syntaxe met en évidence le code source dans PowerPoint / Keynote
Différences dans la façon d'écrire du code source externe entre Ruby et Python