Acabo de descubrir la existencia de marcadores en vi. ¿Cómo lo usas? ¿Qué sabes sobre ellos? ¿son útiles, por ejemplo, para un desarrollador de C++?¿Cómo se usan los marcadores en vi?
Respuesta
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.
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í.
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.
Atajo genial. ¡Gracias! –
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
.
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. –
- 1. ¿Cómo navegan los mecanógrafos táctiles en vi?
- 2. ¿Cómo se usan los marcos de CSS?
- 3. Cómo asegurar los marcadores no se cortan en jqplot
- 4. ¿Cómo se restablecen los valores predeterminados para VI?
- 5. ¿Cómo se usan los registros fs/gs en Linux AMD64?
- 6. ¿Cómo se usan los manipuladores genéricos (ASHX) en ASP.NET MVC?
- 7. ¿Cómo se usan los métodos parciales en C# 3.0?
- 8. ¿Los modelos de vista se usan en los rieles?
- 9. ¿Cómo se usan las máscaras personalizadas de Datepicker y Timepicker?
- 10. ¿Cómo se compila C en vi y se ejecuta?
- 11. Buscar/Grep en todos los tampones VI
- 12. Aparte de las consultas LINQ, ¿cómo se usan los tipos anónimos en C#?
- 13. ¿Cómo se usan DVCS en equipos grandes?
- 14. ¿Cómo se usan las clases de los archivos .jar?
- 15. Estructura de archivos de Cassandra: ¿cómo se usan los archivos?
- 16. ¿Qué son los módulos de combinación y cómo se usan?
- 17. ¿Por qué los métodos auxiliares se usan frecuentemente en Javascript?
- 18. ¿Cómo quitar los números de línea en Vi?
- 19. cómo pasar a los siguientes paréntesis adjuntos en VI
- 20. Google Maps API v3: los marcadores no se eliminan
- 21. ¿dónde se almacenan los marcadores de sincronización de Google Chrome?
- 22. ¿Cómo funcionan los marcadores de posición en Flyway?
- 23. ¿Cómo enumerar todos los marcadores en NERDTree of VIM?
- 24. ¿Cómo unir todos los marcadores con rutas en Google Maps?
- 25. cómo obtener todos los marcadores en google-maps-v3
- 26. ¿Para qué se usan los dominios de la aplicación?
- 27. Leer los marcadores de Firefox 3
- 28. ¿Cómo funcionan los certificados digitales cuando se usan para proteger sitios web (usando SSL)?
- 29. Las variantes se usan recursivamente?
- 30. Subrayado de plantillas - cambiar los marcadores símbolo
por favor nos muestran cómo saltas hacia atrás? – vehomzzz
Si el marcador se establece con 'ma', puede retroceder usando''a'. – Stephan202