¿Hay una forma rápida de disminuir la sangría de varias líneas en Python?


Soy un novato en la programación de Python. Encuentro que disminuir la sangría de un bloque de códigos en python es bastante molesto. Por ejemplo, dado el siguiente fragmento de código

for i in range(density):
   if i < 5:
      x, y = rnd(0,shape[1]//2)*2, rnd(0,shape[0]//2)*2
      Z[y,x] = 1 
      ....
      ....

Si comento la instrucción if, tengo que disminuir la sangría de las líneas en el bloque if una por una, ¿hay alguna manera de que pueda hacer esto con un trazo de tecla a medida que aumente la sangría de un bloque de códigos seleccionándolos y presionando la tecla TAB? Supongo que esto depende del medio ambiente, entonces, ¿podría proporcionar soluciones para hacerlo en Eclipse + Pydev, VIM y otros editores comunes?

Author: Christopher Creutzig, 2012-02-18

4 answers

En vim, seleccione el bloque y luego presione el llave.

En Eclipse lo seleccionas y luego presionas SHIFT + TAB .

Cada editor de código que vale su sal tiene una forma de una sola tecla para indentar y dedent bloques.

 56
Author: Borealid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-16 15:49:50

También puedes reemplazar la sentencia if con:

if True:  # if i < 5:

Y dejar todo lo demás en paz - sin sangría/dedent para deshacer más tarde.

 8
Author: PaulMcG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-18 12:51:45

Quizás tarde para su caso, pero si es útil para otros:

SHIFT + TAB hará unindent para el texto seleccionado en Eclipse.

 3
Author: sanja7s,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-16 15:48:19

Use Preferences-Pydev-Editor settings desmarque cambiar pestañas a espacios. Hace que los errores de retención y su problema. Y probar otras opciones como 4 pestaña de espacio, 8 pestaña de espacio y así sucesivamente.

 1
Author: 42n4,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-14 07:10:25