2010-08-02 7 views
20

estoy usando el VIM.Here es mi situación:Shift un bloque de código seleccionado a la derecha

1111111111111 
2222222222222 
3333333333333 
4444444444444 

anterior es el código original, quiero hacerlas, como a continuación. Después de seleccionar estas cuatro líneas, ¿qué debo hacer para cambiarlas?

1111111111111 
    2222222222222 
    3333333333333 
    4444444444444 

Best Regards,

Respuesta

30

en modo comando, puede utilizar >> a sangrar una sola línea. 4>> sangrará las tres líneas actuales y siguientes.

Si no sabe cuántas líneas por adelantado (puede ser bastante grande), puede usar rangos. Vaya a la primera línea del rango e ingrese ma para colocar el marcador A. Luego vaya a la última línea e ingrese >'a para sangrar desde aquí hasta el marcador A. Puede hacer todo tipo de cosas maravillosas con rangos.

La forma en que están sangrados depende de un par de cosas como la configuración de su ancho de cambio. Siempre tengo mis ajustes de ancho de cambio y tabstop iguales para evitar problemas:

:set ts=4 sw=4 

(por ejemplo).

+5

Nitpick: Usa '>>' en el modo * normal *; modo de comando es cuando ha escrito ':' y está escribiendo un comando. –

+3

En realidad, voy a disentir sobre eso. Vi siempre ha referido a los modos de comando e inserción, a pesar de los errores de Wikipedia :-). Los comandos de dos puntos son simplemente comandos 'ex' permitidos en el modo de comando al prefijarlos con': '. – paxdiablo

+0

Vim hace una distinción entre el modo normal y el modo * línea *, y es importante recordar que son diferentes, para propósitos de mapeos, etc. Para evitar confusiones, la ayuda vim siempre se referirá al "modo normal". Sin embargo ': help command-mode' le informará sobre el modo normal, y" esto también se conoce como modo de comando ". –

6

Hit >

eso es todo.

3

Utilice la tecla >.

4

Use v para seleccionar el bloque y luego presione la tecla>.

19

Si ya ha seleccionado las cuatro líneas en modo visual: > las desplazará shiftwidth hacia la derecha. Después de que se cambian, la selección visual se habrá ido, pero puede sangrar de nuevo a través del . (repita el último comando).

Si usted es el modo normal, con el cursor en cualquier lugar de la primera línea:

  • >> se sangrar esa línea,
  • 4>> se sangría a las cuatro líneas,
  • >3j va a hacer lo mismo de otra manera (sangría desde esta línea a tres líneas hacia abajo),
  • >} sangrará todas las líneas hasta el final del párrafo (es decir, a la primera línea vacía, consulte :help object-motions), y
  • >ap indentará todas las líneas de unp -aragraph (véase :help text-objects), incluso si el cursor no está en la primera línea.

Una vez más, puede repetir estos comandos a través de . para los niveles de indentación más profunda (o puede establecer shiftwidth apropiadamente).

Si su archivo está muy bien compuesto de "párrafos" (y la mayoría de mi código y prosa), creo que el texto-objeto ap es la forma más común de trabajar en bloques de texto como este . También puede usar text-objects para acelerar la selección visual.

0

Para mí, el número debe estar después, como >>4, para pasar a la derecha, o antes, como 4<<, para mover hacia la izquierda. Yo uso Vim 7.4.52.

Cuestiones relacionadas