Pregunta:
Cuando utilizo el complemento grep para VIM, puedo buscar en el directorio actual todas las apariciones de una cadena dentro de un conjunto de archivos, como este:
:grep Ryan *.txt
Esto genera algo como esto:
file1.txt:3:Ryan was here
file2.txt:10:Ryan likes VIM
file3.txt:5:superuser.com is a fav of Ryan
(1 of 3): Ryan was here
Press ENTER or type command to continue
Si presiono enter, simplemente me lleva de vuelta a mi editor. Lo que realmente quiero hacer es poder abrir uno de esos archivos y saltar al lugar donde se encontró la cadena. ¿Hay alguna forma de hacer esto? La parte 1 of 3
me hace pensar que hay una manera de ver los resultados, pero no sé qué comandos están disponibles para mí. ¿Alguien puede arrojar algo de luz sobre esto?
Respuesta:
Cuando presione ENTRAR, debería estar mirando la línea 3 de file1.txt. Para saltar a la siguiente coincidencia, ejecute :cn
; para saltar al partido anterior, ejecute :cp
. Ejecutando :copen
abrirá una ventana que contiene la lista de coincidencias. Mueva el cursor a la coincidencia deseada y presione ENTER para saltar a esa coincidencia.
Para obtener más información sobre el uso de :grep
, consulte
:help grep
:help quickfix.txt
Escribir :cn
y :cp
para avanzar y retroceder en la lista de corrección rápida puede ser incómodo, así que utilizo estas asignaciones:
nmap <silent> <C-N> :cn<CR>zv
nmap <silent> <C-P> :cp<CR>zv
Además, el :grep
no es un complemento; es parte de Vim.