PuTTY como selecionar e copiar texto usando apenas o teclado


75

Existe alguma maneira de selecionar um texto com o teclado da maneira que eu faço normalmente usando as teclas Shift +.


Eu acho que é impossível. :(
Lucas Jones

Eu não entendo Shift e setas estão no teclado.
Scott

Respostas:


71

No manual do PuTTY :

A cópia e colar do PuTTY funciona inteiramente com o mouse. Para copiar o texto para a área de transferência, basta clicar no botão esquerdo do mouse na janela do terminal e arrastar para selecionar o texto. Quando você solta o botão, o texto é automaticamente copiado para a área de transferência. Você não precisa pressionar Ctrl- Cou Ctrl- Ins; de fato, se você pressionar Ctrl- C, o PuTTY enviará um Ctrl- Ccaractere na sua sessão para o servidor, onde provavelmente fará com que um processo seja interrompido.


9
Minha linha tem 24k caracteres. Como posso copiá-lo? Só consigo ver a última parte da linha ou a primeira parte no buffer da tela.
Gaʀʀʏ

@ Gaʀʀʏ Eu sei que você seguiu em frente com esse comentário, mas gostaria de observar que, se eu tiver uma linha de 24k para copiar, acho que a opção 'Copiar tudo para a área de transferência' é justificada. Certamente é o que eu chamaria de um caso de ponta.
Sean Allred

@ Gaʀʀʏ, para adicionar à resposta de Sean, a cópia é do buffer do terminal e não do stdout. Para linhas muito longas, certamente é possível que a linha tenha excedido o buffer em si.
ysap

3
Shift + Inserir.
phocks 15/03

26

Até onde eu sei, não há como copiar uma área selecionada da janela da massa para a área de transferência do Windows sem usar o mouse. há uma solicitação de recurso no site da massa específica para essa funcionalidade.

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

a única maneira de copiar informações da janela da massa para a área de transferência do Windows com um atalho de teclado é usar o menu do sistema de aplicativos "copiar tudo para a área de transferência" (que você pode chamar do alt-space, desde que defina a "Janela> Comportamento> O menu Sistema aparece na opção ALT-Space "configurada em massa.

A colagem da área de transferência do Windows em massa pode ser feita com Shift- Insert.

Se você precisar copiar e colar apenas dentro da própria janela do terminal, consulte a página de manual do shell que você está usando ou considere usar o aplicativo "screen" unix ('man screen' para obter mais informações), que permite a seleção de texto para copiar / colar dentro da janela do terminal (semelhante ao modo como o copiar / colar do vi funciona). um trecho das páginas de 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 >.

11
@xgMz - Funciona bem para mim. Surpreendente que esse ingresso tenha sido registrado há mais de 13 anos e ninguém se deu ao trabalho de fazê-lo ainda.
ArtOfWarfare

O link funciona agora.
XgMz

25

control+ insert= cópia

shift+ insert= colar


2
Não sei por que isso foi rebaixado. É a única resposta que funcionou para mim. Eu era capaz de fazer um script AutoHotkey que copia o texto de GVim no Windows, pastas para Putty, e executa-lo em uma sessão IPython interativo
rsoren

2
control+ insertparece não fazer absolutamente nada. shift+ insertcola, no entanto.
ArtOfWarfare

3
Desde 2016, ele funciona com o Windows 7 e o Putty 0.63. No entanto, a questão aparentemente inclui definir a seleção para copiar também o AFAICT.
stefanct

3
@rsoren - o OP solicita um método apenas de teclado. Esta resposta requer marcação com o mouse primeiro. De acordo com a resposta selecionada, uma vez marcado, o <Ctrl + Ins> está implícito.
ysap 8/12/16

Não funciona para mim no Windows 7
SherylHohman

3

Para contornar esse problema, execute o PuTTY em uma substituição de console do Windows, como ConEmu ou SuperPutty .


11
Como você faz isso no SuperPutty?
Grokster

@athya como isso funciona? o que a superputação tem sobre a massa?
241117 alpha_989

@ Michael-Hampton .. o ConEmu permite colar da área de transferência do Windows no terminal do Windows apenas com o teclado?
Alpha_989

2

Eu uso a tela GNU,

Eu também tenho isso no meu screenrc para jogar bem com o vim:

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

Um amigo meu tem um gancho na tela para copiar a "área de transferência da tela" para uma ou ambas as x áreas de transferência (seleção ou área de transferência) e acredito que a massa de vidraceiro faz as traduções necessárias. Vou tentar desenterrá-lo.

Provavelmente, você pode organizar a mesma coisa com o xclip, o encantamento que você procura deve estar usando xclip -selection clipboard

Eu testaria rapidamente para ver se xclip -selection clipboard -ocospe o conteúdo da sua área de transferência.


Eu gostaria que isso funcionasse no PuTTY! Eu tentei. Ele queixou-se "não pode abrir exibição"
Brian Peterson

Usar xclipdeve funcionar. Eu uso tmuxe xselcopiar a partir Puty usando teclados .. Eu ainda tenho que descobrir como colar no terminal do Windows com o teclado
alpha_989

2

Isso pode ser mais uma solução alternativa do que uma solução.

No vim, se você deseja copiar um bloco selecionado no modo visual (geralmente um bloco que abrange muitas páginas), você pode gravá-lo em um arquivo (digitando :w filename.txtenquanto o texto está selecionado e enquanto ainda está no modo visual) ) Depois de fazer isso, você pode:

  1. Abra o arquivo em um editor do Windows, se ele estiver montado no Samba
  2. Leia o conteúdo do arquivo via Apache ou um servidor FTP
  3. Envie o arquivo por email como anexo (veja o comando abaixo - requer Mutt):

    echo "My Message Body" | mutt -s "my subject line" -a filename.txt -- recipient@email-server.com
    

Pessoalmente, prefiro a opção 1.


2

Outra sugestão um tanto improvisada é ativar as Teclas do mouse no Windows. No Windows 7, está no Centro de Facilidade de Acesso.

  1. Clique em "Facilitar o uso do mouse".
  2. Marque a caixa de seleção "Ativar as teclas do mouse".
  3. Clique em "Configurar teclas do mouse" para obter configurações adicionais.

A tecla de atalho padrão das Teclas do mouse é Alt+ Shift+ NumLock.

Espera-se que pressionar esta combinação de teclas não interfira na sua sessão (ou apenas Alt+ Tabsair e ativá-la de fora da massa). Acredito que pressionar 0 no numpad inicia um bloqueio de clique, permitindo que você arraste a parte do texto que deseja destacar / copiar.


2

Eu estava cansado de rolar linha por linha através do botão esquerdo do mouse para copiar a saída da sessão. Mas agora, eu preciso clicar no botão do meio duas vezes; primeiro no começo e segundo no final. Como eu fiz:

  1. Vá para a janela Putty Configuration
  2. Escolha "Seleção" da categoria à esquerda da janela.
  3. Em 'Controlar o uso do mouse', escolha 'Compromisso (extensão média, pastas à direita)' se ainda não estiver selecionado.

2
Leia e faça-se entender a pergunta e tente responder.
Renju Chandran chingath

Essa é a melhor maneira de selecionar, e Putty cuida da cópia. Porém, para copiar mais de uma tela de texto, acho que você precisa usar o gato. vi continua movendo o cursor.
Noumenon

1

Trabalhei nisso por um tempo, e o próprio Putty não pode deixar você copiar apenas com a área de transferência.

No entanto, o Putty pode facilitar a transmissão reversa de dados do lado remoto. Se você estiver usando uma ferramenta como o Vim ou o Tmux para fazer seleções de texto com base no teclado, poderá despejar a saída em um arquivo e (namorar-se aqui) netcat em um túnel de porta reversa em massa para um serviço local que despeja a entrada no local prancheta.

Fiz um vídeo de como fazer isso aqui: https://www.youtube.com/watch?v=RI79eeCuyvE , mas aqui está a versão curta:

Defina seus túneis putty> connection> SSH> para encaminhar o R11311 para o host local: 1234 Use o netcat como um servidor de escuta que canaliza a saída para o comando clip do windows 10, que envia entrada para a área de transferência do windows. Envolva isso em um loop for eterno da seguinte maneira:

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

Execute o acima em um prompt de comando que você executa como administrador, porque você está oferecendo uma porta.

No servidor remoto * nix, você precisa usar o vim ou o Tmux para enviar seleções de texto para um arquivo.

Use um comando para enviar sua seleção de texto para um arquivo

tmux save-buffer ~/.clipboard

Ou, você pode usar o Vim para salvar um buffer (neste caso, z) em um arquivo

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

Integro as pranchetas do vim e tmux usando o arquivo .clipboard como intermediário, usando uma função essencial da vim .

Depois que sua seleção de texto estiver no arquivo, você poderá encaminhar a saída para o lado remoto da porta:

cat ~/.clipboard | nc 127.0.0.1 11311

Ou dentro de um script vim

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

Observe que o e comercial é necessário porque não consegui que o -q 0sinalizador do netcat funcionasse corretamente. Talvez você possa. Sem ele funcionando, aguarda um segundo inteiro antes de fechar, o que pode interromper o fluxo do seu trabalho. Com oe comercial, ele abandona o processo instantaneamente, que é concluído em 1 segundo em segundo plano.

Fazer tudo o que foi dito acima integrará totalmente as pranchetas do cliente Tmux, Vim e putty client sem tocar no mouse! Esta foi a única maneira que eu pude encontrar para fazer isso.


Além disso, se você usar isso para pastas de várias linhas entre sistemas operacionais, lembre-se de converter entre finais de linha DOS / Unix
Troy Fletcher

-1

Se você estiver na máquina Windows, ele funcionará bem, mas, no caso de uma máquina com Linux, às vezes não funcionará. Para fazê-lo funcionar, copie o conteúdo de qualquer editor de texto e use a tecla Shift + Insert na linha em que deseja colar.

Espero que isso ajude!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.