2009-10-01 24 views

Respuesta

11

los uso todo el tiempo para:

  • comentando bloques de código,
  • copiar y mover los bloques de código,
  • YanKing y borrar bloques de código en tampones con nombre y
  • Editar: sustituyéndolo en un bloque de prueba.

Comentando:

  • ir a la primera línea del código que desea comentar,
  • marca que, por ejemplo,escriba ma
  • ir al final del bloque
  • entrar :'a,.s/^/# (o lo que sea de carácter comentario es necesario)

copiar y mover:

  • marca de primera línea que el anterior,
  • vaya a la parte inferior del bloque que desea copiar/mover
  • ingrese su segundo marcador diferente, por ej. mb
  • vaya a donde desee copiar el bloque e ingrese :'a,'bco . o :'a,'bmo . para copiar o mover resp.

Tirando a un búfer llamado:

  • marca de primera línea que el anterior,
  • ir a la parte inferior del bloque que desea dar un tirón a
  • entrar :'a,.ya a se tire del bloque en memoria intermedia una o :'a,.ya A agregará el bloque al contenido actual del búfer a

Edit: Sustituyendo en un bloque de texto:

  • marca de primera línea que el anterior,
  • ir a la parte inferior del bloque que desea sustituir en
  • enter :'a,.s/search_string/replace_string/[gc] que subtitute en su bloque de texto. Agregar 'g' o 'c' después de la última barra invocará la funcionalidad global habitual y confirme.

Editar: olvidaba decir, recordar que 'a (apóstrofe a) se refiere a la línea que contiene el marcador y `a (tilde a) se refiere al carácter en la línea que ha marcado.

Así `ad`b (bactic-a-d-backtic-b) es un pequeño fragmento de utilidad para eliminar el texto en una línea del carbón de leña marcado con 'a' hasta la carbonización antes el carbón marcada con b.

Por cierto, en Vim, ingresando :reg le dará el contenido de todos sus registros incl. tus registros de eliminación.

3

Los uso cuando necesito saltar en un archivo grande. Por ejemplo, si estoy trabajando en dos funciones interrelacionadas, una que se define cerca de la parte superior del archivo y otra que se define cerca de la parte inferior, puedo establecer marcadores para saltar rápidamente hacia adelante y hacia atrás entre las dos ubicaciones.

Si declaro una clase o trabajo con una declaración con la que no estoy familiarizado, a menudo es útil marcar el lugar donde se explican las cosas por primera vez para poder retroceder y obtener una referencia rápida.

Los marcadores son útiles en general, pero no creo que sean más (o menos) útiles simplemente porque estás desarrollando en C++.

Estas son solo algunas ideas: estoy seguro de que habrá muchas otras buenas por ahí.

+0

por favor nos muestran cómo saltas hacia atrás? – vehomzzz

+2

Si el marcador se establece con 'ma', puede retroceder usando''a'. – Stephan202

2

El uso más común es para copiar y pegar o eliminar bloques grandes. Vaya a la primera línea del bloque, escriba mx Vaya a la última línea del bloque, escriba y'x para copiar el bloque completo (al portapapeles) o d'x para eliminarlo (cortarlo). En cualquier caso, se puede usar p o P para pegarlo en otro lugar.

+0

Atajo genial. ¡Gracias! –

1

Los marcadores son una buena manera de volver al comienzo de una línea o una ubicación exacta en una línea.

Normalmente los usaré cuando quiera extraer o copiar una parte del código. Considere lo siguiente:

int tmp = 0; 
while (tmp < 10) 
{ 
    doIt(tmp); /* cursor before d */ 
    /* ... */ 
    finishIt(tmp); 
    tmp++ 
} 

Si quiero extraer de doIt(tmp) a finishIt(tmp), estaría continuación, establezca un marcador en el cursor (ma por ejemplo), vaya a finishIt, y luego eliminar a marcar una con d'a.

+1

Me resulta mucho más fácil simplemente usar la selección visual y luego presionar d, o cuál es el comando. Uso esta técnica más a menudo para hacer una búsqueda y reemplazo de una selección de texto. –

Cuestiones relacionadas