2012-07-11 16 views
8

¿Hay alguna manera de rápidamente (por ejemplo, a través de un atajo de teclado, etc.) hacer referencia a la salida de la salida del comando anterior que escribió a stdout?Referencia stdout (es decir, la salida del comando anterior) rápidamente en bash?

Por ejemplo, si hiciera esto:

which rails 

y volvió /usr/local/bin/rails y luego quería abrir ese archivo en textmate, pude volver a escribir la salida como esta:

mate /usr/local/bin/rails 

, pero ¿hay alguna forma de referenciar rápidamente la salida sin tener que volver a escribirla?

NOTA: Soy consciente de que puedo hacer mate $(which rails), pero estoy buscando específicamente hacer referencia a stdout.

+2

No, ha ido tan lejos como a Bash. Puede estar disponible en el búfer de desplazamiento hacia atrás de su terminal ('pantalla', por ejemplo). –

+0

'mate $ (!!)' quizás. – ephemient

+0

!! solo tiene la entrada, no la salida, la salida no se almacena en ningún otro lugar, excepto en el búfer del terminal. – pizza

Respuesta

-1

Siempre se puede ejecutar el comando entre comillas sencillas:

mate `which rails` 

tengo que decir que, aunque se siente un poco, eh, arriesgado. ¿Qué pasa si tu PATH ha sido manipulada para que devuelva una versión diferente de los rieles de la que realmente necesitabas? ¿Qué pasa si no devuelve nada? Por lo tanto, tenga cuidado de cerrar todos esos casos de error, o evítelos de alguna manera (por ejemplo, leyendo la ruta a los raíles desde un archivo de configuración y escribiendo una herramienta que genere ese archivo de configuración para usted).

4

usar acentos abiertos en relación con la historia:

$ which rails 
/usr/local/bin/rails 
$ mate `!!` 

En realidad, mi editor (un guión a partir gvim) es alias a e, por lo que parece aún más corto:

$ e `!!` 

y siempre se puede enlazar a una tecla de acceso rápido (consulte la página de manual de bash para el comando bind y readline support).

Además, si se puede usar buffers sueltos (seleccionar con el ratón en una aplicación X), una tecla de acceso directo para algo como el siguiente podría ser útil:

$ e $(xclip -out) 

El comando iniciará el editor que el anterior con lo que estaba en el búfer de corte en la línea de comandos. Dado que muchos caminos son seleccionables con solo un doble clic, una ruta seleccionada puede editarse muy rápidamente.

Cuestiones relacionadas