spanish language change linux command-line keyboard xterm

linux - language - ¿Cómo copio el texto de mi xterm sin un mouse?



xterm linux install (5)

Quiero usar parte de la salida de un comando ejecutado desde la línea de comando en otro xterm, o como parte de un comando diferente. Por ejemplo:

> grep error error.log error: can''t find file ~/<some very long path>/thisfile

y quiero hacer esto:

>ls ~/<some very long path>/

Conozco dos formas de hacer esto:
1. copie ~/<some very long path>/ con el mouse.
2. Usa alguna combinación de head / tail / awk / sed / perl / cut / etc ... para extraer solo lo que necesito de la salida y luego usarlo dentro de los backticks.

¿Hay alguna forma de copiar texto sin usar el mouse? El ejemplo que me viene a la mente es el modo visual dentro de VIM, pero no sé cómo hacerlo dentro de xterm.


El OP dijo que no quería hacer esto, pero aquí hay una forma de utilidades de Unix para hacerlo para la posteridad. Si aprendes estas pequeñas utilidades de Unix, pueden ser bastante poderosas.

ls $ (dirname $ (grep error error.log | head -1 | cut -d "" -f 5-)

nota: sintaxis de la memoria


Puede usar los comandos copiar y pegar de la pantalla GNU.

Tutorial rápido:

  1. Pantalla abierta: screen (o screen myprog my args here )
  2. Ejecuta tu programa, produciendo resultados que quieras copiar
  3. Ingrese el modo de copia: ^ A [
  4. Mueva su cursor al punto de inicio
  5. Presione enter
  6. Mueva su cursor al punto final
  7. Presione enter
  8. Pegar: ^ A]

La pantalla es mucho más poderosa que eso (la utilizo para tabular varios terminales virtuales sin la necesidad de un emulador de terminal especial, y también para no perder mis sesiones cuando X falla o algo así). Para salir de la pantalla, simplemente finalice su sesión de shell o escriba ^ A ^.


Encuentro que XSel es útil en situaciones similares. Es una herramienta que manipula la selección X. Por ejemplo, esto almacenará el resultado de su comando en el portapapeles:

grep error error.log | xsel -bi


Puede enviar la salida directamente al xterm afectado utilizando el dispositivo xterm no. Aquí está el comando.

xyz$ls /home/ankit/documents/etc/x/y/z > /dev/pts/0

(o watever es el nombre del dispositivo, puede obtenerlo usando el comando ''w'' para xterm abierto)

Pruébalo y espero que esto pueda resolver tu problema.


También podría usar tmux que tiene capacidades similares a la screen . Una vez que esté en tmux y tenga el resultado que desea copiar, puede hacer lo siguiente para copiar y luego pegarlo:

  1. Ingrese el modo de copia con Ctrl + B , [
  2. Mueva el cursor con las teclas de flecha y luego comience la selección con Ctrl + Espacio
  3. Mueva el cursor para seleccionar el texto / región para copiar y luego cópielo con Alt + W (esto lo saldrá inmediatamente del modo de copia)
  4. Ahora puede pegar (dentro de tmux solamente) usando Ctrl + B , ]

Estas instrucciones suponen que las vinculaciones de teclas de emacs están habilitadas. Para las vinculaciones vi, vea esta comparación o simplemente siga esta guía paso a paso.