¿Es posible procesar / transformar la salida de grep
(o producir grep
resultados similares, encontrar cadenas y / o patrones en archivos, de alguna otra manera) de modo que los resultados de búsqueda se puedan usar como enlaces (es decir, hipervínculos) para abrir un editor? Quiero hacer clic en a
en mi resultado y abrir mi editor en la línea seleccionada.filename:line_number
grep
$ grep "mServiceIntent" -R ./src/
./src/example/PhotoThumbnailFragment.java:67 private Intent mServiceIntent;
./src/example/PhotoThumbnailFragment.java:194 mServiceIntent =
./src/example/PhotoThumbnailFragment.java:203 getActivity().startService(mServiceIntent);
Sé cómo registrar protocolos en el sistema para abrir el editor. Por ejemplo, todas las URL como sblm://*
en mi sistema se abren en Sublime Text. Mi pregunta es: ¿cómo crear enlaces personalizados en la terminal de guake (o tal vez no depende del terremoto y funciona para el programa de terminal predeterminado)?
Nota: la pregunta relacionada (?), ¿Existe una aplicación de terminal que permita hacer clic en los nombres de los archivos? , es vago en detalles específicos de implementación / solución, y no menciona explícitamente mi requisito de saltar directamente a una línea identificada en el archivo.
Respuestas:
La versión más reciente del terminal GNOME ahora admite hipervínculos con destino personalizado a través de ciertas secuencias de escape. Tratar
Abrir estos trabajos de la misma manera como se describe en la respuesta de Stephen Kitt. Para abordar el problema que describió, podría usar un script sed (o algún método más avanzado) para traducir los nombres de los archivos a hipervínculos. Para mí, lo siguiente hace el trabajo (en bash y suponiendo que la forma anterior para crear hipervínculos funcione)
(No tengo sublime instalado, pero lo más probable es que simplemente pueda cambiar el archivo: a slbm :)
Ver también: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda (Esto se basa en mi respuesta en la Terminal - crear hipervínculos )
fuente
urlencode
función bash que hace que las cosas funcionen correctamente cuando tiene espacios u otros caracteres interesantes en los nombres de directorio / archivo.Es una computadora; Puedes programarlo. :-)
Hacer algo "cliqueable" significa programar una aplicación GUI o de alguna manera usar HTML. La forma más simple que se me ocurre sería generar una página HTML de HREF y canalizar la salida a, por ejemplo, Lynx , configurar el navegador para abrir emacs adecuadamente.
fuente