Cuando corro grep "keyword" -ny obtengo la siguiente lista de resultados:
a/b/c:10:    keyword
a/b/c:70:    keyword
a/b/d:50:    keyword
¿Cómo puedo abrir uno de los archivos (digamos el segundo en la lista) en la línea que encontró?
Ahora solo copie la salida con el mouse y la copie después vimy luego agregue +con el número de línea que copio. (lo que significa que escribo vim a/b/c +70usando la copia del mouse para obtener el nombre del archivo, y otra copia del mouse para obtener el número de línea [o simplemente lo copio a mano, cuando es lo suficientemente corto])
¿Hay alguna manera de hacerlo con un atajo de teclado?
                    
                        command-line
                                vim
                                grep
                                
                    
                    
                        CIsForCookies
fuente
                
                fuente

echo a/b/c:70: keyword | awk '{print $1}' | sed 's,:$,,' | sed 's,:, +,' | xargs vim && reset.Respuestas:
Dos cosas:
Vim tiene algo de apoyo para
grep.Si abre Vim, y lo hace
:grep keyword ..., Vim completa la lista de soluciones rápidas con los resultados y salta al primer archivo. A continuación, puede saltar a la n º quickfix entrada con:cc n(y otros comandos).Puede completar la lista de soluciones rápidas antes mencionadas utilizando la salida de grep:
Y luego use los comandos de navegación de revisión rápida mencionados anteriormente.
Cualquiera de los dos es más simple que jugar manualmente con la salida de grep.
Como alternativa a (2), puede guardar la salida de grep en un archivo y utilizar ese archivo, si cree que no necesariamente abrirá Vim después de:
fuente
grep -n(<filename>:<line>: ...). Uso el complemento fugitivo para Git, y luego es cuestión de:Gstatusmoverme al archivo deseado y presionar Enter.grep aliaspara usar colores siempre, y eso, por alguna razón, rompió la-q >()opción ...Podrías hacerlo si no hubiera soporte para grep ya que @muru respondió:
Se puede usar con otro comando,
git greppor ejemplo.Además, puede abrir la salida en un búfer y usar "cbuffer" en él.
Consulte la sección de revisión rápida del manual al respecto.
fuente