2009-10-07 19 views
21

¿Es posible tirar de un bloque completo de código Python en Vim?¿Cómo tirar de un bloque completo en Vim?

se trate de un def, for, if, etc. bloque ...

+1

"¿Pertenece a superuser.com", tal vez? No estoy seguro ... –

+7

No estoy de acuerdo, se trata del uso de una herramienta de software en un proceso de desarrollo específico (codificación de Python), ver http://meta.stackexchange.com/questions/12373/which- types-of-programming-related-questions-are-appropriate/12378 # 12378 –

Respuesta

20

Puede tirar de un párrafo con y}. Sin embargo, esto no eliminará todos los métodos si tiene una línea en blanco.

+5

Puede usar Ctrl-v e y} para ver qué líneas se extraerán. Puede presionar} como quiera cubrir su bloque. – noomz

4

Hay un complemento add-on de vim python_fn.vim que tiene, como una de sus funciones, una combinación de teclas para seleccionar visualmente un bloque de código Python usando ]v. A continuación, puede tirar de él con y de forma normal.

3

Normalmente uso el modo de bloque visual. Shift-V, move, y 'y'ank el bloque resaltado. Sólo hay tantos atajos puedo guardar en la memoria a la vez :)

+2

Esto es lo que suelo hacer también, no creo que sea la mejor manera, pero es bastante fácil de hacer con una célula cerebral :) –

+0

la selección visual también es muy útil para bloquear/dedentificar bloques usando> y < –

3
  1. Introduzca la selección de línea visual pulsando la tecla 'V'
  2. cuando termine de seleccionar los pres bloque 'Y'
  3. pegarla en algún lugar con 'p 'o 'P'
3

se puede combinar una búsqueda con tirón, así que si su función termina con return retval puede escribir y/return retval

6

Si desea dar un tirón a todo excepto el { usa yi{ (o yi}). Si incluye las llaves, use ya{ (o ya}).

Los i y a modificadores significan en y todo.

dar un tirón a una palabra sin importar en qué lugar de la palabra son: yiw

dar un tirón el contenido del paréntesis: yi); si desea incluirlos, utilice ya(

Usted puede hacer lo mismo para " o ' con yi", ya" o yi' y ya'.

Por supuesto, no está limitado a tirar. Puede eliminar una palabra con diw o cambiarlo con ciw, etc ... etc ...

+3

para un lenguaje C Creo que la pregunta era específica de Python. – bluehavana

+2

También hay 'p' para tirar del párrafo actual (es decir, cualquier cosa separada por líneas en blanco arriba de una abajo). 'yip' tira de todo el párrafo, y' yap' tira de todo el párrafo + la siguiente línea en blanco. Esto es útil si su cursor ya está en algún lugar dentro del párrafo que desea tirar. –

1

hice un plugin llamado spacebox que hace un Visual selección de todas las líneas con la misma o más sangrado que la línea actual.

Con Python espacios en blanco es la forma en que está, puede colocar el cursor en la línea de abajo def o if, y emitir el comando :SpaceBox para seleccionar el "bloque".

6

El complemento excelente suite Python-mode incluye algunos key commands para navegar clases, métodos y bloques de funciones.

  • dar un tirón a un método: yun (método interno: yiM)M

  • dar un tirón a una clase: yunaC

Hay otros movimientos prácticos, como pasar de la función a la función (]]). Vea el complete list of keys para más.

0

Simplemente doble la clase usando za y luego use el modo visual (V) para seleccionar la clase contraída. De esta forma no tienes que desplazarte demasiado. Entonces solo jala con y. Cuando termines de tirar despliega la clase con za otra vez.

0
  1. En el archivo .py, pulse Esc
  2. de prensa shift V para entrar en el modo de línea visual
  3. luces con arriba y abajo las teclas de flecha
  4. Prensa d para eliminar las filas seleccionadas
  5. Ir a la fila le gustaría colocar las líneas y presionar p para pegar líneas después de una fila o presionar shift P para pegar antes de una fila

Espero que ayude.

Cuestiones relacionadas