¿Cómo realizo una búsqueda y reemplazo dentro de una selección en vi
?Buscar y reemplazar dentro de la selección en `vi`
Respuesta
Seleccione el texto en el modo visual (supongo que eso es lo que está haciendo), a continuación, pulse :
para comenzar a escribir un comando, verá algo como esto aparecerá en la línea de comandos:
:'<,'>
Eso significa que el comando se aplicará a la selección. Luego escriba s/search/replace/
y presione enter. (Agrega un g
después de la tercera barra, si desea reemplazar todos los partidos, y una c
si desea una confirmación para cada sustituir)
más ayuda aquí Search and replace in a visual selection
Si utilizó modo visual para seleccionar, a continuación:
:'<,'>s/regex/replacement/options
VIM colocará la gama ('<,'>
) automáticamente si usted entra en Modo Línea (pulsando ':'
) desde el Modo Visual.
Esto debería funcionar teóricamente como se pretendía, pero como alguien más señaló, en la práctica se reemplaza en cualquier lugar dentro de las líneas donde la marca '<' comienza y donde '>' termina. Tal vez sea posible hacer que funcione con el átomo '\% '>' pero mis experimentos iniciales fallaron. –
Tienes razón. Nunca me di cuenta. – Tomalak
Si usted quiere hacer un búsqueda global y reemplazar (con expresiones regulares opcionales) para todas las instancias en el archivo, haría lo siguiente:
:%s/foo/bar/g
Omitir el g para hacer un reemplazo local.
El local es local a la línea actual – Lazarus
La mayoría de las otras soluciones sugeridas aquí funcionan sobre la línea ENTERA en la que ocurre la selección, que puede no ser la que usted desea.
Para buscar y reemplazar sólo en la selección, seleccione en primer lugar visualmente el texto, a continuación, utilizar un comando de esta forma:
:%s/\%VSEARCH/REPLACE/g
Esto va a hacer la búsqueda y reemplazo sólo en la sección seleccionada visualmente, en sustitución de SEARCH con REEMPLAZAR. Si tiene más de una línea seleccionada, esto funcionará también en varias líneas.
¿Debería funcionar esto para un reemplazo al seleccionar visualmente parte de una línea? No puedo hacer que funcione para reemplazar espacios con devolución. Estoy seleccionando parte de la línea y usan ':% s/\% V/\ r/g' sin alegría. El primer espacio se reemplaza, pero los siguientes 4 permanecen intactos. – bentayloruk
Acabo de probarlo, y funciona para todos los casos que probé, excepto para reemplazar con una devolución ;-) Creo que debe ser porque la primera sustitución rompe la selección en una nueva línea, que ya no está en la selección. Como solución alternativa, puede reemplazarla por una cadena única, p. EZ_REPLACE, luego haz una búsqueda global y reemplaza por eso ... –
no funciona bien cuando se recodifica en una macro. reproducir la macro en un rango de líneas no funciona. –
- 1. /in vi ¿Buscar y reemplazar?
- 2. Cómo incluir una barra diagonal en vi buscar y reemplazar
- 3. Buscar y reemplazar dentro de un rectángulo en emacs
- 4. buscar y reemplazar la cadena
- 5. Buscar cadena y agregar línea en vi/vim
- 6. Buscar/Grep en todos los tampones VI
- 7. Buscar la selección en vim
- 8. Buscar y reemplazar jQuery
- 9. Nueva caja Buscar y reemplazar
- 10. Linux buscar y reemplazar
- 11. Buscar y reemplazar en toda la base de datos mysql
- 12. Buscar y reemplazar en scripts de shell
- 13. unix tr buscar y reemplazar
- 14. vim: buscar y reemplazar por "&"
- 15. Vim Buscar y reemplazar Eficiencia
- 16. Buscar y reemplazar con JavaScript
- 17. Jquery: buscar y reemplazar texto
- 18. Buscar cadena y obtener recuento en el editor vi
- 19. Buscar y reemplazar en varios archivos
- 20. Buscar y reemplazar en HTML con BeautifulSoup
- 21. Buscar y reemplazar en un archivo grande
- 22. Buscar y reemplazar expresiones regulares en línea
- 23. buscar y reemplazar cadena en un archivo
- 24. Caret buscar y reemplazar en Bash shell
- 25. Buscar y reemplazar palabras en HTML
- 26. Buscar y reemplazar palabras completas en vim
- 27. Buscar y reemplazar en archivos falla
- 28. expresión regular de java Buscar y reemplazar
- 29. Buscar y reemplazar en una gama de línea y columna
- 30. Buscar y reemplazar en nombre de variable dentro de S-Expression (ámbito léxico)?
Advertencia: ¡la gama solo funciona en línea! Si su selección contiene solo una parte de una línea, la búsqueda y el reemplazo funcionarán en toda la línea. Obtener una línea parcial para buscar y reemplazar requiere una secuencia de comandos afaik. – user55400
Sugiero moverlo temporalmente a una línea diferente, hacer el reemplazo y moverlo hacia atrás. –