Tengo un par de ideas imperfectas, pero quizás útiles.
Método 1 - mousey.
Usa la barra de desplazamiento del terminal.
Detalles (suponiendo xterm
; se requerirán ajustes para otros terminales).
- Habilite la barra de desplazamiento si aún no lo está. (En
xterm
, está en el menú que obtienes con Ctrl + Button2.)
- Asegúrese de que
less
no se esté ejecutando con la -c
opción (tengo esta opción habilitada en mi LESS
variable de entorno, pero interfiere con lo que estamos a punto de hacer, así que tengo que escribir -c
para desactivarla).
- Usando los
less
comandos que desee, desplácese hacia arriba o hacia abajo para que la primera línea que desea copiar sea visible en la pantalla.
- triple-Button1 su línea de partida elegida para seleccionarla.
- Desplácese hacia abajo hasta que la última línea que desea copiar sea visible en la pantalla. Debe usar solo la barra espaciadora u otras teclas de desplazamiento simples, no una
/
búsqueda; el punto aquí es less
enviar todas las líneas al terminal para que puedan copiarse.
- Button3 en la línea final elegida para ampliar la selección.
Posible dificultad: su búfer de desplazamiento puede no ser lo suficientemente grande. Eso se puede cambiar xterm
con la opción de línea de comando saveLines
o recurso -sl
, pero no sé cómo cambiarlo en un xterm que ya se está ejecutando.
Método 2: no mousey.
Use el |
comando (pipe) less
para enviar el texto a xclip
.
Detalles:
- Con los
less
comandos que desee, desplácese hacia arriba o hacia abajo para colocar la última línea que desea copiar en la parte superior de la pantalla. Puede omitir este paso y el siguiente si desea copiar hasta el final.
- Use el
m
comando (marca) para establecer una marca en la posición final elegida. Las marcas son una característica útil por sí mismas, y ya debe conocerlas vi
, pero en caso de que no lo haga: mxestablece una marca, donde x
puede ser cualquier letra, y lo 'xregresa allí más tarde.
- Ahora desplácese hacia arriba para que la primera línea que quiera copiar esté en la parte superior de la pantalla.
- Use el comando de tubería: |xque le solicitará que ingrese un comando externo. El
x
debe ser la misma letra de marca que ha utilizado en el m
comando, o $
para "todo el camino hasta el final". Escribe xclip
allí.
El simple caso de copiar toda la página man se reduce a g|$xclipEnter.
Advertencia (es decir, lo horrible que me acaba de pasar ): xclip
estará semi-en segundo plano, ejecutándose como parte del less
grupo de procesos. Si intenta suspender less
, inicie otro trabajo en el mismo terminal y péguelo, no funcionará. Luego, cuando más adelante coloque en primer plano el trabajo man
/ less
, de repente aparecerá la pasta. Creo que esto debería considerarse un xclip
error ...