PuTTY cómo seleccionar texto y copiar texto SÓLO usando el teclado

75

¿Hay alguna forma de seleccionar un texto con el teclado de la manera en que lo hago normalmente usando Mayús + flechas.

Flyk
fuente
Creo que es imposible :(
Lucas Jones
No entiendo. Mayús y flechas están en el teclado.
Scott

Respuestas:

71

Del manual de PuTTY :

Copiar y pegar de PuTTY funciona completamente con el mouse. Para copiar texto en el portapapeles, simplemente haga clic con el botón izquierdo del mouse en la ventana de terminal y arrastre para seleccionar texto. Cuando sueltas el botón, el texto se copia automáticamente en el portapapeles. No necesita presionar Ctrl- Co Ctrl- Ins; de hecho, si presiona Ctrl- C, PuTTY enviará un carácter Ctrl- Chacia abajo de su sesión al servidor donde probablemente causará la interrupción de un proceso.

Asaph
fuente
99
Mi línea tiene 24k caracteres de largo. ¿Cómo puedo copiarlo? Solo puedo ver la última parte de la línea o la primera parte en el búfer de la pantalla.
Gaʀʀʏ
@ Gaʀʀʏ Sé que hace mucho tiempo que dejó de hacer este comentario, pero me gustaría señalar que si tengo una línea de 24k para copiar, creo que la opción 'Copiar todo al portapapeles' está justificada. Ciertamente es lo que yo llamaría un caso marginal.
Sean Allred
@ Gaʀʀʏ, para agregar a la respuesta de Sean, la copia es del búfer del terminal y no de stdout. Para líneas muy largas, ciertamente es posible que la línea desborde el búfer.
ysap
3
Shift + Insertar.
mete el
26

que yo sepa, no hay forma de copiar un área seleccionada de la ventana de masilla al portapapeles de Windows sin usar el mouse. hay una solicitud de función en el sitio de masilla específicamente para esta funcionalidad.

http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/keyboard-copy.html

la única forma de copiar información desde la ventana de masilla al portapapeles de Windows con un atajo de teclado es usar el menú del sistema de la aplicación "copiar todo al portapapeles" (que puede invocar desde el espacio alternativo, siempre que configure "Ventana> Comportamiento> El menú del sistema aparece en ALT-Space "opción configurada en masilla.

Pegar desde el portapapeles de Windows en masilla se puede hacer con Shift- Insert.

Si necesita copiar y pegar solo dentro de la ventana del terminal, consulte la página de manual del shell que está utilizando o considere utilizar la aplicación de "pantalla" de Unix ('pantalla de manual' para obtener más información), que permite la selección de texto para copiar / pegar dentro de la ventana de terminal (similar a cómo funciona copiar / pegar de vi). un extracto de las páginas del manual:

   C-a esc     (copy)        Enter copy/scrollback mode.

   C-a ]       (paste .)     Write the contents of the paste buffer to the
                             stdin queue of the current window.

   C-a {
   C-a }       (history)     Copy and paste a previous (command) line.

   C-a >       (writebuf)    Write paste buffer to a file.

   C-a <       (readbuf)     Reads the screen-exchange file into the paste
                             buffer.

   C-a =       (removebuf)   Removes the file used by C-a < and C-a >.
ives
fuente
1
@xgMz: funciona bien para mí. Sorprendentemente, ese boleto fue presentado hace más de 13 años y nadie se ha molestado en hacerlo todavía.
ArtOfWarfare
Enlace funciona ahora.
xgMz
25

control+ insert= copia

shift+ insert= pegar

vi_dude
fuente
2
No sé por qué esto fue rechazado. Es la única respuesta que me funcionó. Pude crear un script AutoHotkey que copia texto de GVim en Windows, lo pega a Putty y lo ejecuta en una sesión interactiva de IPython
rsoren
2
control+ insertparece no hacer absolutamente nada. shift+ insertpega, sin embargo.
ArtOfWarfare
3
A partir de 2016, funciona con Windows 7 y Putty 0.63. Sin embargo, la pregunta aparentemente incluye establecer la selección para copiar y AFAICT.
stefanct
3
@rsoren: el OP solicita un método de solo teclado. Esta respuesta requiere marcar con el mouse primero. De acuerdo con la respuesta seleccionada, una vez marcado, <Ctrl + Ins> está implícito.
ysap
No funciona para mí en Windows 7
SherylHohman
3

Para evitar este problema, ejecute PuTTY en un reemplazo de consola de Windows como ConEmu o SuperPutty .

Michael Hampton
fuente
1
¿Cómo se hace esto en SuperPutty?
grokster
@sathya ¿cómo funciona esto? ¿Qué tiene superputty sobre masilla?
alpha_989
@ Michael-Hampton ... ¿ConEmu le permite pegar desde el Portapapeles de Windows al Terminal de Windows solo con el teclado?
alpha_989
2

Yo uso la pantalla GNU,

También tengo esto en mi screenrc para jugar bien con vim:

register [ "\033:se paste\015a"
register ] "\033:se nopaste\015a\033"
bind ^] paste [.]

Un amigo mío tiene un gancho en la pantalla para copiar el "portapapeles de pantalla" en uno o ambos portapapeles x (selección o portapapeles) y creo que Putty hace las traducciones necesarias. Intentaré desenterrarlo.

Probablemente puedas organizar lo mismo con xclip, el encantamiento que estás buscando debería estar usando xclip -selection clipboard

Probaría rápidamente para ver si xclip -selection clipboard -oescupe el contenido de su portapapeles.

richo
fuente
¡Desearía que esto funcionara en PuTTY! Lo intenté. Se quejó de "no se puede abrir la pantalla"
Brian Peterson
Usar xclipdebería funcionar. Uso tmuxy xselpara copiar desde Puty usando teclados ... Todavía tengo que descubrir cómo pegar en el terminal de Windows con el teclado
alpha_989
2

Esto puede ser más una solución alternativa que una solución.

Dentro de vim, si desea copiar un bloque que seleccionó en modo visual (generalmente un bloque que abarca muchas páginas), puede escribirlo en un archivo (escribiendo :w filename.txtmientras el texto está seleccionado y mientras todavía está en modo visual ) Una vez que hayas hecho eso, puedes:

  1. Abra el archivo en un editor de Windows si está montado sobre Samba
  2. Lea el contenido del archivo a través de Apache o un servidor FTP
  3. Envíe el archivo por correo electrónico como un archivo adjunto (consulte el comando a continuación, requiere Mutt):

    echo "My Message Body" | mutt -s "my subject line" -a filename.txt -- [email protected]
    

Personalmente prefiero la opción 1.

Homero6
fuente
2

Otra sugerencia un tanto improvisada es activar las teclas del mouse dentro de Windows. En Windows 7 está bajo el Centro de facilidad de acceso.

  1. Haga clic en "Hacer que el mouse sea más fácil de usar".
  2. Marque la casilla de verificación que dice "Activar teclas del mouse".
  3. Haga clic en "Configurar teclas del mouse" para configuraciones adicionales.

La tecla de acceso rápido predeterminada de las teclas del mouse es Alt+ Shift+ NumLock.

Esperemos que presionar esta combinación de teclas no interfiera con su sesión (o simplemente Alt+ Tabfuera y activarla desde la masilla externa). Creo que presionar 0 en el teclado numérico inicia un bloqueo de clic, lo que le permite arrastrar sobre la parte del texto que desea resaltar / copiar.

Fénix blanco
fuente
2

Estaba cansado de desplazarme línea por línea con el botón izquierdo del mouse para copiar la salida de la sesión. Pero ahora, necesito hacer clic en el botón central dos veces; primero al principio y segundo al final. Como lo hice:

  1. Ir a la ventana de configuración de masilla
  2. Elija "Selección" de la categoría a la izquierda de la ventana.
  3. En 'Controlar el uso del mouse', elija 'Compromiso (extensiones medias, pastas derechas)' si aún no se ha elegido.
sedat
fuente
2
Lea y comprenda la pregunta e intente responderla.
Renju Chandran chingath
Esta es la mejor manera de seleccionar, y Putty se encarga de la copia. Sin embargo, para copiar más de una pantalla de texto, creo que necesitas usar cat en su lugar. vi sigue moviendo el cursor.
Noumenon
1

Trabajé en esto por un tiempo, y Putty en sí no puede permitirte copiar solo con el portapapeles.

Sin embargo, Putty puede facilitar la transmisión inversa de datos desde el lado remoto. Si está utilizando una herramienta como Vim o Tmux para realizar selecciones de texto basadas en el teclado, puede volcar la salida a un archivo y (salir conmigo) netcat a un túnel de puerto inverso de masilla a un servicio local que volca la entrada al local portapapeles.

Hice un video de cómo hacer esto aquí: https://www.youtube.com/watch?v=RI79eeCuyvE , pero aquí está la versión corta:

Configure su túnel de masilla> conexión> SSH> para reenviar R11311 a localhost: 1234 Use netcat como un servidor de escucha que canaliza la salida al comando de clip de Windows 10 que envía la entrada al portapapeles de Windows. Envuelva esto en un bucle eterno así:

for /L %N IN () do nc -lp 1234 | clip

Ejecute lo anterior en un símbolo del sistema que ejecute como administrador, porque está haciendo una oferta a un puerto.

En el servidor remoto * nix, debe usar vim o Tmux para enviar selecciones de texto a un archivo.

Use un comando para enviar su selección de texto a un archivo

tmux save-buffer ~/.clipboard

O bien, puede usar Vim para guardar un búfer (en este caso, z) en un archivo

silent! redir! > ~/.clipboard
silent! echo @z
silent! redir END

Integro los portapapeles vim y tmux usando el archivo .clipboard como intermediario usando una función vim gist .

Una vez que su selección de texto esté en el archivo, puede canalizar la salida hacia el lado remoto del puerto hacia adelante:

cat ~/.clipboard | nc 127.0.0.1 11311

O dentro de un script vim

silent! !cat ~/.clipboard | nc 127.0.0.1 11311 &

Tenga en cuenta que el ampersand es necesario porque no pude hacer que la -q 0bandera de netcat funcione correctamente. Tal vez tu puedas. Sin que funcione, espera un segundo completo antes de cerrar, lo que puede interrumpir el flujo de su trabajo. Con el ampersand abandona el proceso instantáneamente, que se completa en 1 segundo en segundo plano.

¡Hacer todo lo anterior integrará completamente los portapapeles de Tmux, Vim y clientes locales de masilla sin tocar un mouse! Esta fue la única forma que pude encontrar para hacer esto.

Troy Fletcher
fuente
Además, si usa esto para pastas multilínea entre sistemas operativos, recuerde convertir entre terminaciones de línea DOS / Unix
Troy Fletcher
-1

Si está en una máquina con Windows, funcionará bien, pero si en el caso de una máquina basada en Linux, en algún momento no funcionará. Para que funcione, simplemente copie el contenido en cualquier editor de texto y use la tecla Mayús + Insertar en la línea donde desea pegar eso.

Espero que esto ayude!

nikhil bangar
fuente