PuTTY как выделить текст и скопировать текст с помощью клавиатуры ТОЛЬКО
Есть ли какой-нибудь способ выделения текста с помощью клавиатуры, как я делаю это обычно с помощью Shift+arrows.
Есть ли какой-нибудь способ выделения текста с помощью клавиатуры, как я делаю это обычно с помощью Shift+arrows.
Из руководства PuTTY Manual :
Копия и вставка PuTTY полностью работает с мышью. Чтобы скопировать текст в буфер обмена, просто щелкните левой кнопкой мыши в окне терминала и перетащите, чтобы выделить текст. Когда вы отпустите кнопку, текст будет автоматически скопирован в буфер обмена. Вам не нужно нажимать Ctrl-C или Ctrl-Ins; на самом деле, если вы нажмете Ctrl-C, PuTTY отправит Ctrl-C символ вниз по вашей сессии на сервер, где это, вероятно, приведет к прерыванию процесса.
Насколько я знаю, нет способа скопировать выделенную область из окна шпаклевки в буфер обмена Windows без использования мыши. Специально для этой функциональности на сайте шпаклевки есть запрос функции. http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/keyboard-copy. html
Единственный способ скопировать информацию из окна шпаклевки в буфер обмена Windows с помощью сочетания клавиш - это использовать системное меню приложения “скопировать все в буфер обмена” (которое можно вызвать из alt-пространства, при условии установки опции “Окно > Поведение > Системное меню появляется на ALT-пространстве”, сконфигурированной в шпаклевке.
Вставка из буфера обмена Windows into putty может быть выполнена с помощью Shift-Insert.
Если вам нужно копировать и вставлять только внутри самого окна терминала, обратитесь либо к man-странице используемой оболочки, либо рассмотрите возможность использования unix “screen” приложения (“man screen” для более подробной информации), которое позволяет выделить текст для копирования/вставки в терминальном окне (аналогично тому, как работает vi’s copy/stte). выдержка из man-страниц:
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 >.
Чтобы обойти эту проблему, запустите PuTTY в консольной замене Windows, такой как ConEmu или SuperPutty .
Я использую GNU экран,
У меня также есть это в моем screenrc, чтобы хорошо играть с vim:
register [ "&00133:se paste&00115a"
register ] "&00133:se nopaste&00115a&00133"
bind ^] paste [.]
У моего друга есть крючок на экране, чтобы скопировать “экранный буфер обмена” на один или оба x буфера обмена (выбор или буфер обмена), и я верю, что шпаклевка делает необходимые переводы. Я постараюсь откопать его.
Вы, вероятно, можете организовать то же самое с xclip, заклипта, который вы ищете должны использовать xclip -selection clipboard
Я бы быстро протестировал, чтобы увидеть, если xclip -selection clipboard -o
выплюнет содержимое вашего буфера обмена.
Мне надоело прокручивать вниз строку за строкой с помощью левой кнопки мыши, чтобы скопировать вывод сессии. Но теперь мне нужно нажать на кнопку средняя кнопку дважды; первый в начале и второй в конце. Как я сделал :
Это может быть больше похоже на обходной путь, чем на решение.
В vim, если вы хотите скопировать блок, который вы выбрали в визуальном режиме (обычно блок, который охватывает много страниц), вы можете записать его в файл (набрав :w filename.txt
, пока текст выбран, и пока вы еще находитесь в визуальном режиме). После этого вы можете:
Лично я предпочитаю вариант 1.
Другое несколько импровизированное предложение - активировать Клавиши мыши в Windows. В Windows 7 она находится в Центре легкого доступа.
Горячая клавиша по умолчанию - Alt + Shift + NumLock.
Надеюсь, нажатие этой комбинации клавиш не помешает вашему сеансу (или просто Alt + Tab out и активируйте его из внешней шпаклевки). Я считаю, что нажатие 0 на нумерационной панели запускает блокировку кликов, позволяя вам перетащить ту часть текста, которую вы хотите выделить/копировать.
Работал над этим какое-то время, и сама шпатлевка не может позволить вам копировать только буфер обмена.
Тем не менее, шпатлевка может облегчить обратную передачу данных с удаленной стороны. Если вы используете такие инструменты, как Vim или Tmux, чтобы делать выбор текста с клавиатуры, вы можете сбросить вывод в файл, и (датируя себя здесь) netcat в туннель обратного порта Putty к локальному сервису, который сбрасывает ввод в локальный буфер обмена.
Я сделал видео о том, как это сделать здесь: https://www.youtube.com/watch?v=RI79eeCuyvE , но вот короткая версия:
Установите вашу шпатлевку > соединение > SSH > туннели для переадресации R11311 на localhost:1234 Используйте netcat в качестве прослушивающего сервера, который выдает на выходе команду windows 10 clip, которая посылает входные данные в буфер обмена 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, используя . как посредника, используя функцию vim gist .
После того, как вы выбрали текст в файле, вы можете перенаправить вывод на удаленную сторону порта вперед:
cat ~/.clipboard | nc 127.0.0.1 11311
Или внутри vim скрипта
silent! !cat ~/.clipboard | nc 127.0.0.1 11311 &
Заметьте, что амперсанд необходим, потому что я не смог получить флаг -q 0
от netcat, чтобы он работал правильно. Может быть, вы сможете. Без него он ждет целую секунду перед закрытием, что может нарушить ход Вашей работы. С амперсандом и он мгновенно отказывается от процесса, который завершается за 1 секунду в фоновом режиме.
Выполнение всего вышеперечисленного полностью интегрирует клипборды Tmux, Vim и локальных шпаклевочных клиентов, не прикасаясь к мышке! Это был единственный способ, который я смог найти, чтобы сделать это.
Если вы находитесь на Windows-машине, то она будет работать нормально, но если на linux-машине, то когда-нибудь она не будет работать. Чтобы заставить ее работать, просто скопируйте содержимое в любой текстовый редактор и просто используйте клавишу Shift + Insert в строке, куда вы хотите вставить это.
Надеюсь, это поможет!