Зрозуміло, як вибрати текст та скопіювати текст за допомогою ТІЛЬКИ клавіатури


75

Чи є спосіб вибору тексту за допомогою клавіатури, як це я роблю, як правило, за допомогою стрілок Shift +.


Я думаю, що це неможливо. :(
Лукас Джонс

Я не розумію. Зсув та стрілки знаходяться на клавіатурі.
Скотт

Відповіді:


71

З посібника PuTTY :

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


9
Мій рядок - 24 тис. Символів. Як я можу скопіювати це? Я бачу лише останню частину рядка або першу частину в буфері екрану.
Gaʀʀʏ

@ Gaʀʀʏ Я знаю, що ви давно перейшли від цього коментаря, але я хотів би зазначити, що якщо у мене є копія рядка в 24 тисячі, я вважаю, що варіант "Скопіювати все у буфер обміну" виправданий. Це звичайно те, що я б назвав кращим випадком.
Шон Аллред

@ Gaʀʀʏ, щоб додати до відповіді Шона, копія з термінального буфера, а не з stdout. Для дуже довгих рядків, безумовно, можливо, що рядок переповнював сам буфер.
ysap

3
Shift + Insert.
записує

26

наскільки я знаю, не існує засобів копіювання вибраної області з вікна шпаклівки у буфер обміну Windows, не використовуючи мишу. на сайті шпаклівки є запит на особливості спеціально для цієї функціональності.

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

єдиний спосіб скопіювати інформацію з вікна шпаклівки в буфер обміну Windows за допомогою ярлика клавіатури - це використання системного меню програми «Скопіювати все до буфера обміну» (яке можна викликати з місця alt, за умови встановлення «Вікно> Поведінка> Системне меню з'являється на ALT-Space ", налаштований у шпаклівці.

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

Якщо вам потрібно скопіювати та вставити лише в самому вікні терміналу, зверніться до сторінки "man" для оболонки, яку ви використовуєте, або розглянути можливість використання програми "screen" unix ("man screen" для отримання додаткової інформації), що дозволяє вибрати текст для копіювання / вставки у вікні терміналу (подібно до того, як працює копія / вставка vi). уривок зі сторінки 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 >.

1
@xgMz - добре працює для мене. Дивно, що цей квиток був поданий понад 13 років тому, і його ніхто ще не переймався.
ArtOfWarfare

Посилання працює зараз.
xgMz

24

control+ insert= копія

shift+ insert= вставити


2
Я не знаю, чому це було знято. Це єдина відповідь, яка працювала на мене. Мені вдалося зробити скрипт AutoHotkey, який копіює текст з GVim у Windows, вставляє його в Putty і запускає його в інтерактивній сесії IPython
rsoren

2
control+ insertздається, нічого не робить. shift+ insertХоча вставляє.
ArtOfWarfare

3
Станом на 2016 рік, він працює з Windows 7 та Putty 0.63. Однак питання, очевидно, включає встановлення вибору для копіювання, а також AFAICT.
stefanct

3
@rsoren - ОП вимагає лише методу клавіатури. Ця відповідь спочатку потребує позначення мишкою. Відповідно до обраної відповіді, щойно позначена, мається на увазі <Ctrl + Ins>.
ysap

Не працює для мене в Windows 7
SherylHohman

3

Щоб вирішити цю проблему, запустіть PuTTY в заміні консолі Windows, наприклад ConEmu або SuperPutty .


1
Як це зробити в SuperPutty?
grokster

@sathya як це працює? що надпотужність має над шпаклівкою?
alpha_989

@ Майкл-Хемптон .. чи дозволяє ConEmu вам вставляти з буфера обміну Windows до терміналу Windows лише клавіатуру?
alpha_989

2

Я використовую екран GNU,

У мене також є це в моєму екрані, щоб добре грати з vim:

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

У мого друга є гачок на екрані, щоб скопіювати "буфер обміну екрану" в один або обидва з буфера обміну x (вибір або буфер обміну), і я вважаю, що шпаклівка робить необхідні переклади. Я спробую це викопати.

Можливо, ви можете домовитись про те ж саме за допомогою xclip, заклик, який ви шукаєте, повинен використовувати xclip -selection clipboard

Я швидко перевіряю, чи не xclip -selection clipboard -oвипльовує вміст буфера обміну.


Я бажаю, щоб це працювало в PuTTY! Я намагався. Він скаржився на "не вдається відкрити дисплей"
Брайан Петерсон

Використання xclipповинно працювати. Я використовую tmuxта xselкопіюю з Puty за допомогою клавіатур. Мені ще належить з'ясувати, як вставити термінал Windows за допомогою клавіатури
alpha_989

2

Це може бути скоріше рішення, ніж рішення.

Якщо ви бажаєте скопіювати вибраний у візуальному режимі блок (зазвичай це блок, який охоплює багато сторінок), ви можете записати його у файл (набравши текст :w filename.txtпід час вибору тексту та поки ви перебуваєте у візуальному режимі ). Після цього ви зможете:

  1. Відкрийте файл у редакторі Windows, якщо він встановлений над Samba
  2. Прочитайте вміст файлу через Apache або FTP-сервер
  3. Надішліть файл як вкладення (див. Команду нижче - вимагає Mutt):

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

Особисто я віддаю перевагу варіант 1.


2

Ще одна дещо спрощена пропозиція - активувати клавіші миші в Windows. У Windows 7 це під Центром простоти доступу.

  1. Натисніть «Зробити мишу простішою у використанні».
  2. Установіть прапорець "Увімкнути клавіші миші".
  3. Клацніть на "Налаштувати клавіші миші" для додаткових налаштувань.

За замовчуванням клавіша миші клавішами Alt+ Shift+ NumLock.

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


2

Мені набридло прокручувати лінію за рядком за допомогою лівої кнопки миші, щоб скопіювати вихід сеансу. Але тепер мені потрібно двічі натиснути на середню кнопку ; перший на початку і другий в кінці. Як я це зробив:

  1. Перейдіть у вікно налаштування шпаклівки
  2. Виберіть "Виділення" з категорії зліва вікна.
  3. У розділі "Контроль використання миші" виберіть "Компроміс (середні розширення, праві вставки)", якщо їх ще не вибрано.

2
Будь ласка, прочитайте і дайте зрозуміти питання, а потім спробуйте відповісти на нього.
Ченгат Ренджу Чандран

Це найкращий спосіб вибору, і Putty піклується про копіювання. Хоча, щоб скопіювати більше ніж один екран тексту, я думаю, що вам досить потрібно використовувати кішку. vi продовжує рухати курсор.
Номенон

1

Працювали над цим деякий час, і сама Putty не може дозволити вам копіювати лише буфер обміну.

Однак Putty може полегшити зворотну передачу даних з віддаленого боку. Якщо ви використовуєте такий інструмент, як Vim або Tmux, для вибору тексту на основі клавіатури, ви можете скинути висновок у файл і (знаходячись тут) netcat в тунель зворотного порту шпаклівки до локальної служби, яка скидає вхід до локальної служби буфер обміну.

Я зробив відео, як це зробити тут: 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 блокноти , використовуючи .clipboard файл в якості посередника , використовуючи функцію ВІМ суть .

Після того як ваш текст знаходиться у файлі, ви можете передавати вихід на віддалену сторону порту вперед:

cat ~/.clipboard | nc 127.0.0.1 11311

Або всередині сценарію vim

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

Зауважте, що амперсанд необхідний, тому що я не міг змусити -q 0прапора netcat працювати належним чином. Можливо, ти можеш. Без роботи він чекає повну секунду перед закриттям, що може порушити потік вашої роботи. За допомогою амперсанда він миттєво припиняє процес, який завершується за 1 секунду на задньому плані.

Виконуючи все вище, ви повністю інтегруєте Tbux, Vim та локальні кліпборди кліті-шпаклівки, не торкаючись миші! Це був єдиний спосіб, коли я міг це зробити.


Крім того, якщо ви використовуєте це для багатолінійних паст між ОС, не забудьте конвертувати між кінцями рядків DOS / Unix
Troy Fletcher,

-1

Якщо ви знаходитесь на машині Windows, вона буде працювати нормально, але якщо у випадку Linux-машини вона колись не працюватиме. Щоб змусити його працювати, просто скопіюйте вміст у будь-який текстовий редактор і просто скористайтеся клавішею Shift + Insert у рядку, куди ви хочете вставити його.

Сподіваюся, це допоможе!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.