137 votes

Emacs indentation en vrac pour Python

Travailler avec Python dans Emacs si je veux ajouter un essai / sauf à un bloc de code, je constate souvent que je dois indenter tout le bloc, ligne par ligne. Dans Emacs, comment indenter tout le bloc à la fois.

Je ne suis pas un utilisateur expérimenté d'Emacs, mais je trouve qu'il s'agit du meilleur outil pour travailler avec ssh. J'utilise Emacs sur la ligne de commande (Ubuntu), pas comme interface graphique, si cela fait une différence.

222voto

unutbu Points 222216

Si vous êtes à la programmation Python en utilisant Emacs, alors vous devriez probablement utiliser python-mode. Avec python-mode, après le marquage du bloc de code,

C-c > quarts de la région 4 espaces à droite

C-c < quarts de la région 4 espaces à gauche

Si vous avez besoin de passer le code en deux niveaux de retrait, ou de certains arbitraire montant que vous pouvez préfixer la commande avec un argument:

C-u 8 C-c > quarts de la région 8 espaces à droite

C-u 8 C-c < quarts de la région 8 espaces à gauche

Une autre alternative est d'utiliser M-x indent-rigidly qui est lié à l' C-x TAB:

C-u 8 C-x TAB quarts de la région 8 espaces à droite

C-u -8 C-x TAB quarts de la région 8 espaces à gauche

Sont également utiles le rectangle de commandes qui fonctionnent sur les rectangles de texte à la place de lignes de texte.

Par exemple, après avoir marqué une région rectangulaire,

C-x r o inserts espace vide à remplir la zone rectangulaire (transfère de code à droite)

C-x r k tue la région rectangulaire (transfère code de la gauche)

C-x r t invites pour une chaîne à remplacer le rectangle. Saisissant C-u 8 <space> accéderez ensuite à 8 places.

PS. Avec Ubuntu, pour faire de python-mode est le mode par défaut pour tous .py fichiers, il suffit d'installer l' python-mode package.

9voto

Daniel Stutzbach Points 20026

En plus de indent-region, ce qui est mappé à l' C-M-\ par défaut, le rectangle de modifier les commandes sont très utiles pour Python. Marquer une région comme d'habitude, puis:

  • C-x r t (string-rectangle): vous invite à entrer les caractères que vous souhaitez insérer dans chaque ligne; idéal pour l'insertion d'un certain nombre de places
  • C-x r k (kill-rectangle): supprimer un rectangle de la région; excellent pour l'enlèvement de l'indentation

Vous pouvez également C-x r y (yank-rectangle), mais c'est rarement utile.

3voto

Łukasz Points 5614

mappé à devrait faire l’affaire.

1voto

Singletoned Points 2652

J’utilise cette fonction pour gérer mon renfonçait et unindenting :

Et puis j’ai l’affecter à un raccourci clavier :

-4voto

hpavc Points 930

J’ai fais quelque chose comme cela universellement

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X