2012-06-11 11 views
10

Me gustaría utilizar algo como vils para buffers vim.Vim - edite fácilmente el resultado del filtro

Ejemplo:

a 
b 
a 
b 

Búsqueda de "a" (:g/a/)

de salida:

a 
a 

y luego editar la salida como si se tratara de un tampón normal. Cuando termine, debería mapear mis cambios línea por línea al buffer original.

¿Cómo puedo hacer eso?

PD: Probablemente podría usar :%s/../../ o algo así, pero no sería tan cómodo como podría ser. (Incluso si la consecución en la CTRL +F búfer funcionaría.)

+2

Me gustaría utilizar esto para ocultar los comentarios en los archivos de configuración. –

+0

su mejor opción es seguir ocultando las líneas en las que no hay cadena de búsqueda –

Respuesta

4

Uso Qfreplace http://github.com/thinca/vim-qfreplace

  1. anuncio d algunos en quickfix. por ejemplo: grep foo * /
  2. Tipo: Qfreplace en quickfix
  3. líneas de cambio como desee.
  4. : w
+0

Eso es exactamente lo que quería. ¡Muchas gracias! – Ivaldi

-1

g/../ se puede combinar con comandos como

:g/^a/ s/a/a.txt/ 

para cambiar, por ejemplo, todas las 'A' a 'a.txt '. Consulte ': h: g'

+1

No creo que eso sea lo que él quiere. Creo que quiere ocultar algunas líneas, editar las otras líneas y al guardar guardar todos los archivos, es decir, con las líneas que estaban ocultas. – ThiefMaster

1

Siempre que las líneas coincidentes abarquen un único rango de líneas consecutivas, el NrrwRgn plugin puede funcionar para usted.

0

lo general copiar las líneas al final del documento

:g/a/t$ 

Si lo desea, puede establecer una marca en la 'antigua' documento de fin de:

:$mark a 

Así , ahora puede editar la parte 'a,$ de su documento como lo haría normalmente, incluso guardarla en otro lugar:

:'a,$d | new | put! 

las siguientes obras, así: se puede dar un tirón, añadiendo a un registro a:

:g/a/yank A 

Por supuesto, puede querer limpiar registrar una antes de comenzar:

:let @a="" 
2

La función que estamos hablando de sonidos como occure/narrow-to-region en emacs.

En vim, puede escribir este comando:

:vimgrep pattern % 

continuación, escriba :cw para abrir la lista de quickfix.

Puede usar el clic del mouse o :cn/:cp para navegar y realizar cambios.

+0

Hmm, esto no funciona para mí ... La lista se abre, pero cuando intento modificarla obtengo 'E21: No puedo hacer cambios, 'Modificable' está desactivado', y luego si lo hago': establece modificable' para anular eso, los cambios no se reflejan en el archivo original. – weronika

Cuestiones relacionadas