Подтвердить что ты не робот

Как скопировать буфер копии экрана GNU в буфер обмена

При использовании экрана GNU мы можем работать с буфером прокрутки, также называемым "режимом копирования с помощью команды Ctrl+a+[.

В этом случае мы можем скопировать текст в буфер , нажав space, выбрав текст и снова нажав space.

Есть ли способ скопировать этот текст из буферной копии экрана в буфер обмена X?

В моем случае я использую Ubuntu 12.04 с gnome и Xorg.

4b9b3361

Ответ 1

Вы можете использовать инструмент буфера обмена CLI, например xsel или pbpaste и утилиту cat для захвата содержимого из STDIN. Шаги по Linux с xsel следующие:

  • Скопируйте текст из сеанса экрана в буфер копии экрана GNU.
  • Запустите эту команду на экране: cat | xsel -b
  • Если xsel не сообщило о какой-либо ошибке, теперь буфера копирования экрана сброса в STDIN: Ctrl+a+]
  • Отправьте EOF на cat, чтобы завершить его: Ctrl+d

В этот момент содержимое буферной копии экрана должно находиться в вашем буфере обмена.

EDIT: как и для всех X-программ, xsel должен знать, как связаться с вашим X-сервером, чтобы получить доступ к буферу. У вас должна быть соответствующая переменная среды DISPLAY.

Ответ 2

Этот ответ относится к OS X.

После копирования желаемого текста в буфер палитры экрана GNU с помощью режима копирования выполните следующие действия:

  • В любом из ваших окон экрана введите pbcopy <enter>.
  • Затем вставьте текст в терминал с помощью экрана GNU вставьте команду (Ctrl-a ], если вы не изменили свой escape-ключ).
  • Если текст не заканчивается в новой строке, нажмите <enter>, чтобы вставить его.
  • Наконец, нажмите Ctrl-d, чтобы вызвать pbcopy для ввода текста в системный буфер обмена.

Затем вы можете вставить текст в другом месте в OS X, как обычно, с помощью Command-v или эквивалентного меню.

Ответ 3

Существует более простой и менее ручной способ сделать это. В вашем экране .rc файл добавьте следующую строку:

bindkey -m ' ' eval 'stuff \040' 'writebuf' 'exec sh -c "/usr/bin/pbcopy < /tmp/screen-exchange"'

Как использовать функцию копирования:

  • screen -c path/to/screen/config.rc
  • Нажмите Ctrl + A, затем Esc, чтобы перейти в режим копирования.
  • Прокрутите текстовый буфер и найдите место, в котором вы хотите оставить маркер начала для копирования, затем нажмите пробел.
  • Прокрутите вниз и выберите текст, который вы хотите скопировать. Когда вы закончите, снова нажмите пробел.
  • Текст теперь будет в вашем буфере обмена.

Ответ 4

Этот ответ работает только для сценария, когда конечная цель заключается в том, чтобы сразу вставить содержимое скопированного буфера.

Самый простой способ сделать это - разбивать экран на два региона. Вы можете сделать это, нажав CTRL + a, затем | 'Это не i. Это знак PIPE на клавиатуре

Нажмите CTRL + a, затем TAB, чтобы переключиться во вторую область, CTRL + a, затем c, чтобы создать новый сеанс во второй области.

Если вы хотите скопировать из nano и вставить в терминал, откройте файл в nano в левой области, нажмите CTRL + a, затем ESC, выделите начальную точку вашего места копирования и нажмите SPACE, выберите текст, прокрутив до конечной точки и снова нажмите SPACE, чтобы отметить копию.

Теперь вам нужно только нажать CTRL + a, затем TAB, чтобы перейти в область справа и нажать CTRL + a, затем ].

Текст будет выписан в командной строке. Обратите внимание, что вы также можете проверить параметр hardcopy, если хотите записать непосредственно в файл.

Ответ 5

Если вам просто немного информации, которую вы хотите скопировать, просто выделите ее мышью, а затем вставьте ее туда, где хотите.

Если вы пытаетесь получить много информации, сеанс экрана может быть зарегистрирован в файле, а затем вы можете скопировать его из файла или немного его очистить и использовать его для получения инструкций о выполнении действий

Ответ 6

Наконец, сегодня я нашел решение с мышью:

Удерживая нажатой клавишу Ctrl и , щелкните правой кнопкой мыши с помощью мыши. Скопируйте/вставьте контекстное меню.

Некоторые экраны в https://michalzuber.wordpress.com/2015/01/28/gnu-screen-copy-paste-with-mouse/