¿Cómo saltar entre patrones cuando se usa: vimgrep(lista de Quickfix)?
(2)
Comandos útiles para la lista de soluciones rápidas (corchetes alrededor de parte omittable de los comandos):
-
:cn[ext]
y:cp[revious]
saltan a la entrada siguiente y anterior -
:cnf[ile]
y:cpf[ile]
saltan al archivo siguiente y anterior (si la lista de soluciones rápidas no está ordenada por archivo, podría escribir una función quegetqflist()
, realice una clasificación y luegosetqflist()
-
:cr[ewind]
y:cla[st]
van al principio o al final de la lista de soluciones rápidas -
:col[der]
y:cnew[er]
recorrerán las listas históricas de soluciones rápidas.
No hace falta decir que hay muchos otros comandos y puedes descubrirlos en :help quickfix
.
En lo personal tengo los siguientes mapas:
| ø | SHIFT | CTRL
------+--------+---------+---------
<F11> | :cprev | :cpfile | :colder
<F12> | :cnext | :cnfile | :cnewer
Por supuesto, si usa la lista de ubicaciones en lugar de la lista de soluciones rápidas ( :lvimgrep
) existen los mismos comandos, simplemente reemplace la c
inicial con una l
y eso es todo.
Vim 8 Adiciones :
-
:cdo
: ejecuta un comando en todas las entradas de la lista de soluciones rápidas. Por ejemplo
:vim /foo/ *.cpp *.h *.hpp
puede ir seguido de
:cdo s/pattern/replacement/g
-
:cfdo
: ejecuta un comando y todos los archivos en la lista de soluciones rápidas. Por ejemplo,
:vim /foo/ *.cpp *.h *.hpp
puede ir seguido de
:cfdo %s/2ndpattern/2ndreplacement/g
Soy nuevo en vim y sigo explorando algunas de sus características. Tengo un problema con vimgrep. Puedo buscar un patrón como este vimgrep /define/ **
para que encuentre y abra el siguiente archivo que contiene un define
. Pero todavía no pude averiguar cómo ir al siguiente archivo / línea que coincida con mi patrón. Cualquier punteros?
Para saltar a la siguiente aparición del patrón puede usar :cnext
. Puedes ir en reversa con :cNext
.
No estoy seguro de una forma de omitir todas las ocurrencias hasta el siguiente archivo automáticamente, pero puede abrir la ventana de corrección rápida con :cwindow
para ver una lista de coincidencias y navegar a esas coincidencias presionando Intro en la entrada de la lista.