¿Cómo enviar eficientemente el texto ingresado en la línea de comando al portapapeles del sistema sin usar el mouse?

14

Digamos que he escrito el siguiente comando largo en la línea de comando

 $ some very long command that I want to copy to the clipboard

¿Cómo puedo llevar esto al portapapeles del sistema de manera eficiente? Estoy usando Gnome Terminal 2.23.1.

Sé que puedo obtener el mouse, resaltarlo y copiarlo, pero quiero una solución de teclado general.

También sería bueno si se generalizara a múltiples programas de línea de comandos.

Por ejemplo, en bash en modo vi, puedo presionar vy luego editar el comando en vim, y así usar las funciones de copia de Vim en el portapapeles, pero esto no funciona cuando uso R en la línea de comandos. También es un poco lento.

Me gustaría si en modo vi, pudiera presionar yyy copiar el contenido de la línea en el portapapeles del sistema, pero esto no parece funcionar. Además, cualquier comando de extracción no parece copiar contenido al portapapeles del sistema; parecen copiarse solo en un búfer utilizado por bash.

ACTUALIZAR:

Después de publicar encontré

Jeromy Anglim
fuente
1
No es exactamente lo que pides: usando la pantalla puedes lograr lo que pides siguiendo esta respuesta: askubuntu.com/questions/56570/…
enzotib
Después de esta respuesta ( askubuntu.com/a/503861/43594 ), puede habilitar las teclas del mouse en el acceso universal y usar el teclado numérico para mover el mouse, con el número cinco actuando como un clic. Cuando se hace doble clic rápidamente, seleccionará la palabra sobre la que se mueve el puntero. Cuando se hace clic triple rápidamente, seleccionará toda la línea. Esto, junto con las respuestas sobre cómo copiar (Ctrl-Shift-C) debería hacer casi todo lo que necesita.
James

Respuestas:

3

También podría usar un administrador de portapapeles como parcellite. Es un administrador de portapapeles GTK + que también tiene capacidades de portapapeles de línea de comandos

Puedes usarlo a través de la línea de comandos

echo "some very long command that I want to copy to the clipboard" | parcellite
##or##
parcellite "some very long command that I want to copy to the clipboard"

No está instalado de manera predeterminada, por lo que deberá instalar parcellite sudo apt-get install parcellite

Nitin Venkatesh
fuente
1
gracias, al menos cuando estoy en bash, a veces he usado echo my command | xclip -se c; sin embargo, cuando el comando tiene citas y otros caracteres especiales, a echomenudo no copiará el comando literalmente.
Jeromy Anglim
1

Entonces, el cierre que he podido obtener es usando el historial y xclip en conjunto haciendo esto

echo !! | xclip

Esto colocará el último comando en el portapapeles del botón central. Todavía estoy buscando algo mejor, ya que me gustaría reducirlo a un solo comando. Sin embargo, me cuelgo porque el historial no funciona en los scripts de shell y no sé si hay una manera de usarlo !!correctamente en un alias. Por supuesto, esto no parece ser exactamente lo que pides, mi intención es usar esto para tomar notas de lo que estoy haciendo. ¿Alguna idea?

usuario27643
fuente
Además, todavía existe el problema de cómo copiar comandos con comillas.
Jeromy Anglim
0

Debería poder usar Ctrl+ Shift+ Cpara Copiar y Ctrl+ Shift+ Vpara Pegar en cualquier parte de la Terminal.

Dirk Hartzer Waldeck
fuente
3
Todavía necesita el mouse para seleccionar el texto.
enzotib
doh! punto muy válido
Dirk Hartzer Waldeck
2
Lo que plantea la pregunta, ¿es posible personalizar el terminal o bash para poder seleccionar texto usando el teclado?
Jeromy Anglim
@JeromyAnglim Relacionado: stackoverflow.com/q/312213/1172302
Nikos Alexandris