PuTTY, как выбрать текст и скопировать текст только с клавиатуры

218133
Flyk

Есть ли способ выделить текст с клавиатуры, как я обычно делаю, используя Shift + стрелки.

62
Думаю это невозможно. :( Lucas Jones 14 лет назад 0
Я не понимаю Shift и стрелки * находятся * на клавиатуре. Scott 6 лет назад 0

13 ответов на вопрос

62
Asaph

Из руководства PuTTY :

Копирование и вставка PuTTY полностью работает с мышью. Чтобы скопировать текст в буфер обмена, просто щелкните левой кнопкой мыши в окне терминала и перетащите, чтобы выделить текст. Когда вы отпускаете кнопку, текст автоматически копируется в буфер обмена. Вам не нужно нажимать Ctrl- Cили Ctrl- Ins; на самом деле, если вы нажмете Ctrl- C, PuTTY отправит символ Ctrl- Cво время сеанса на сервер, где это, вероятно, приведет к прерыванию процесса.

Моя строка длиной 24 000 символов. Как я могу скопировать это? Я могу видеть только последнюю часть строки или первую часть на экране буфера. Gaʀʀʏ 10 лет назад 8
@ Gaʀʀʏ Я знаю, что вы давно отошли от этого комментария, но я просто хотел бы отметить, что если у меня есть строка для копирования 24 Кб, я думаю, что опция «Копировать все в буфер обмена» оправдана. Это, конечно, то, что я бы назвал крайним случаем. Sean Allred 8 лет назад 0
@ Gaʀʀʏ, чтобы добавить к ответу Шона, копия из буфера терминала, а не из stdout. Для очень длинных строк, конечно, возможно, что строка переполнила сам буфер. ysap 7 лет назад 0
Shift + Вставить. phocks 7 лет назад 2
23
ives

насколько я знаю, нет способа скопировать выделенную область из окна замазки в буфер обмена Windows без использования мыши. Специально для этой функциональности на сайте замазки есть запрос.

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

единственный способ скопировать информацию из окна замазки в буфер обмена Windows с помощью сочетания клавиш - это использовать системное меню приложения «копировать все в буфер обмена» (которое можно вызывать из alt-space при условии, что вы установили «Window> Behavior>» Системное меню появляется на «ALT-Space», опция настроена в замазке.

Вставить из буфера обмена Windows в замазку можно сделать с Shift- Insert.

Если вам нужно копировать и вставлять только в самом окне терминала, обратитесь к странице руководства для используемой вами оболочки или рассмотрите возможность использования приложения unix «screen» («man screen» для получения дополнительной информации), которое позволяет выбирать текст для копирования / вставки в окне терминала (аналогично тому, как работает копирование / вставка в vi). выдержка из справочных страниц:

 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 >. 
@xgMz - у меня отлично работает. Удивительно, что этот билет был подан более 13 лет назад, и никто еще не удосужился сделать это. ArtOfWarfare 8 лет назад 1
Ссылка работает сейчас. xgMz 8 лет назад 0
21
vi_dude

control+insert = copy

shift+insert = paste

Я не знаю, почему это было понижено. Это единственный ответ, который работал для меня. Мне удалось создать скрипт AutoHotkey, который копирует текст из GVim в Windows, вставляет его в Putty и запускает в интерактивном сеансе IPython. rsoren 9 лет назад 2
`control` +` insert`, похоже, абсолютно ничего не делает. `shift` +` insert` делает вставку, хотя. ArtOfWarfare 8 лет назад 2
С 2016 года он работает с Windows 7 и Putty 0.63. Тем не менее, вопрос, очевидно, включает в себя настройку выбора для копирования, а также AFAICT. stefanct 8 лет назад 2
@rsoren - OP запрашивает метод только с клавиатуры. Этот ответ требует пометки мышью в первую очередь. Согласно выбранному ответу, отмеченный подразумевается. ysap 7 лет назад 2
У меня не работает на Windows 7 SherylHohman 7 лет назад 0
Оно работает ! Использование PuTTY в Windows 8. Matteo Conta 6 лет назад 0
2
Homer6

This may be more of a workaround than a solution.

Within vim, if you want to copy a block that you selected in visual mode (usually a block that spans many pages), you can write it to a file (by typing :w filename.txt while the text is selected and while you're still in visual mode). Once you've done that, you can:

  1. Open the file in a Windows editor if it's mounted over Samba
  2. Read the file contents via Apache or an FTP server
  3. Email the file as an attachment (see command below -- requires Mutt):

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

Personally I prefer option 1.

2
richo

I use GNU screen,

I also have this in my screenrc to play nicely with vim:

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

A friend of mine has a hook in screen to copy the "screen clipboard" to one or both of the x clipboards (selection or clipboard) and I believe putty does the needed translations. I'll try to dig it up.

You can probably arrange the same thing with xclip, the incantation you're looking for should be using xclip -selection clipboard

I'd test quickly to see if xclip -selection clipboard -o spits out the contents of your clipboard.

Я хотел бы, чтобы это работало в PuTTY! Я старался. Он жаловался на "не могу открыть дисплей" Brian Peterson 7 лет назад 0
Использование `xclip` должно работать. Я использую `tmux` и` xsel` для копирования из Puty с помощью клавиатуры. Мне еще предстоит выяснить, как вставить в терминал Windows с помощью клавиатуры alpha_989 6 лет назад 0
2
White Phoenix

Еще одно временное предложение - активировать клавиши мыши в Windows. В Windows 7 он находится в центре легкого доступа.

  1. Нажмите «Сделать мышь проще в использовании».
  2. Установите флажок «Включить клавиши мыши».
  3. Нажмите «Настроить клавиши мыши» для дополнительных настроек.

Горячая клавиша мыши по умолчанию - Alt+ Shift+ NumLock.

Надеюсь, что нажатие на эту комбинацию клавиш не помешает вашей сессии (или просто Alt+ Tabи активируйте ее снаружи замазкой). Я считаю, что нажатие 0 на цифровой клавиатуре запускает блокировку щелчка, позволяя перетаскивать ту часть текста, которую вы хотите выделить / скопировать.

2
Michael Hampton

Чтобы обойти эту проблему, запустите PuTTY в замене консоли Windows, такой как ConEmu или SuperPutty .

Как вы делаете это в SuperPutty? grokster 10 лет назад 1
@ Сатья, как это работает? что сверхспособности имеют над замазкой? alpha_989 7 лет назад 0
@ Michael-Hampton .. позволяет ли ConEmu вставлять из буфера обмена Windows в терминал Windows только с клавиатуры? alpha_989 6 лет назад 0
2
sedat

Мне надоело прокручивать строку за строкой с помощью левой кнопки мыши, чтобы скопировать вывод сессии. Но теперь мне нужно дважды нажать среднюю кнопку ; первый в начале и второй в конце. Как я это сделал:

  1. Перейти к окну конфигурации замазки
  2. Выберите «Выбор» из категории в левой части окна.
  3. В разделе «Управление использованием мыши» выберите «Компромисс (средняя часть, правая вставка)», если она еще не выбрана.
Пожалуйста, прочтите и убедитесь, что вы поняли вопрос, а затем попытайтесь ответить на него. Renju Chandran chingath 10 лет назад 2
Это лучший способ выбора, и Putty позаботится о копировании. Однако, чтобы скопировать несколько экранов текста, я думаю, что вам, скорее всего, нужно вместо этого использовать cat. vi продолжает двигать курсор. Noumenon 8 лет назад 0
1
Troy Fletcher

Некоторое время работал над этим, и сама Putty не может позволить вам копировать с помощью только буфера обмена.

Однако Putty может облегчить обратную передачу данных с удаленной стороны. Если вы используете такой инструмент, как Vim или Tmux, для выбора текста на основе клавиатуры, вы можете записать вывод в файл, и (встречаясь здесь) netcat в туннель обратного порта с замазкой в ​​локальный сервис, который сбрасывает ввод в локальный буфер обмена.

Я сделал видео о том, как это сделать, здесь: https://www.youtube.com/watch?v=RI79eeCuyvE, но вот короткая версия:

Настройте туннели putty> connection> SSH> для пересылки R11311 на localhost: 1234 Используйте netcat в качестве прослушивающего сервера, который направляет вывод в команду клипов windows 10, которая отправляет ввод в буфер обмена Windows. Оберните это в вечный цикл, например:

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

Запустите вышеуказанное в командной строке, которую вы запускаете от имени администратора, потому что вы привязываетесь к порту.

На удаленном * nix-сервере вам нужно использовать vim или Tmux для отправки текстовых выделений в файл.

Используйте команду, чтобы отправить ваш выбор текста в файл

tmux save-buffer ~/.clipboard 

Или вы можете использовать Vim для сохранения буфера (в данном случае z) в файл

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

Я интегрирую буферы обмена vim и tmux, используя файл .clipboard в качестве посредника, используя суть функции vim .

Как только ваш текст выделен в файле, вы можете направить вывод на удаленную сторону порта вперед:

cat ~/.clipboard | nc 127.0.0.1 11311 

Или внутри скрипта vim

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

Обратите внимание, что амперсанд необходим, потому что я не мог заставить -q 0флаг netcat работать должным образом. Может быть, вы можете. Если он не работает, он ждет целую секунду перед закрытием, что может нарушить ход вашей работы. С амперсандом он мгновенно прекращает процесс, который завершается в течение 1 секунды в фоновом режиме.

Выполнение всего вышеперечисленного полностью интегрирует буфер обмена Tmux, Vim и локального клиента-замазки без прикосновения к мышке! Это был единственный способ найти это.

Кроме того, если вы используете это для многострочных вставок между ОС, не забудьте конвертировать между окончаниями строк DOS / Unix Troy Fletcher 6 лет назад 0
-1
nikhil bangar

Если вы работаете на машине с Windows, она будет работать нормально, но если на машине с Linux она не будет работать. Чтобы заставить его работать, просто скопируйте содержимое в любом текстовом редакторе и просто используйте клавиши Shift + Insert в строке, куда вы хотите вставить это.

Надеюсь, это поможет!