Как copy-paste работает с xterm?


59

Щелчок левой кнопкой мыши в xterms запускает выбор чего-либо для вставки копии.

Двойной щелчок левой кнопкой мыши выбирает слово.

Тройной левый щелчок выбирает линию.

Все это работает при единстве в 11.04. Однако нет способа скопировать и вставить этот выбор в другое место: контекстное меню показывает, что вставка отключена, а нажатие средней кнопкой мыши на копирование-вставку не работает.

Итак, как я могу скопировать выделение из xterm в другое место? Я счастлив с любым методом, чтобы выполнить это.

(Я использую установку по умолчанию без специальной конфигурации до сих пор)

Изменить: та же проблема с xedit


1
Это полностью зависит от вашего DE и терминала.
RobotHumans

@AbrahamVanHelpsing: я использую установку по умолчанию, должен был сказать это ...
false

1
После выбора вам нужно скопировать, тогда только вы можете вставить. Просто упомянув это, потому что так, как написан вопрос, кажется, вы хотите перейти от выбора к вставке. Другими словами, выберите левой кнопкой мыши, скопируйте из контекстного меню и вставьте из контекстного меню.

1
Вы используете XTerm? (программное обеспечение) или вы называете Gnome Terminal XTerm ?.
Ури Эррера

@ vasa1: Но после выбора левой кнопкой мыши вставка правой кнопкой мыши по-прежнему отключена!
ложно

Ответы:


44

Используйте средний щелчок или Shift + Вставить

см. выбор X Window


2
Средний щелчок не работал, также как и Shift-Insert (о которой я никогда не слышал, но я пытался). Например, я пытаюсь скопировать и вставить что-то в текстовое поле, которое я просто пишу ...
false

2
У X есть два буфера обмена, если вы выберете что-то в xterm, он перейдет в буферы обрезки, и в этом случае вы можете вставить с помощью среднего щелчка или Shift + Insert. что не то же самое, что копировать пасту.
Струны

Я добавил ссылку, чтобы помочь объяснить процесс выбора X 11.
Струны

Спасибо. Но как мне теперь объединить текст из xterm в другое приложение? Ранее (я использовал karmic), я просто использовал средний щелчок, как вы предлагаете. Но сейчас под единым или 11.04; ни средний щелчок, ни сдвиг-вставка не работают.
ложь

1
если shift + insert тоже работает, то мы можем исключить вашу мышь. Вы используете какой-нибудь менеджер буфера обмена? xsel или что-то в этом роде?
Струны

28

Xterm использует обрезанные буферы, а не стандартный выбор буфера обмена X11, используемый для стандартной операции копирования-вставки, которую сейчас использует gnome-терминал и большинство других программ Linux.

Но если вы запустите xterm так:

xterm -ls -xrm 'XTerm*selectToClipboard: true'&

затем выбор доступен через стандартный буфер обмена.

Узнайте больше на Копирование и вставка в Xterm | База знаний StarNet - ПК X, X Windows, X 11 и более - StarNet

xcbПрограмма также предоставляет доступ к командной строке для срезанных буферов.

Например, в Trusty Tahr 12.04 с запущенным оконным менеджером lxde я могу трижды щелкнуть строку текста в xterm, которая выделяет ее и помещает в обрезанный буфер 0. Затем я могу запустить xcb -p 0, которая выводит строку на стандартный вывод.

По какой-то причине у меня не получилось нажать обе кнопки (имитирующие средний щелчок) в xterm, но shift-insert сработал в xterm.


4
+1 - решено за меня. Поскольку этот вопрос возникает при поиске таких вопросов, как «Как копировать в xTerm», стоит добавить, что если у вас настроен файл .Xresources (или аналогичный), вы можете добавить xterm*selectToClipboard: trueтуда строку, чтобы сделать изменение постоянным :)
Эшли Дэвис

Ответ Стефана объясняет, как убедиться, что настройки в ответе Эшли прочитаны (работал для меня на Fedora 29 - я не пробовал это без лишнего шага Стефана xrdb, но он также упоминает, что вам нужно перезапустить xterm, хотя это может быть очевидно для большинства человек)
пойкилось

Обратите внимание, что если вы используете -class ${CLASS}для запуска xtermсоответствующий флаг, становится -xrm ${CLASS}.*.selectToClipboard:trueтаковым, если у вас есть отдельные классы окна xterm, настройки отслеживаются отдельно.
стевеслива

11

Подобная проблема обсуждается здесь . В качестве «струн» указано:

У X есть два буфера обмена, если вы выберете что-то в xterm, он перейдет в буферы обрезки, и в этом случае вы можете вставить с помощью среднего щелчка или Shift + Insert. что не то же самое, что копировать пасту.

Копирование / вставка в xterm работала у меня, но не в приложении снаружи, пример gedit. По ссылке выше, я установил parcellite, и это решило проблему,

sudo apt-get install parcellite

Обновление: если «вставить» не работает с «shift-insert», то используйте среднюю кнопку мыши или, если у вас нет одного щелчка левой и правой кнопок одновременно, чтобы вставить.


1
Для большей ясности, после установки parcellite, запустите его. Он сидит в системном трее. Щелкните правой кнопкой мыши> «Настройки», затем выберите «Использовать основной» и «Синхронизировать буфер обмена». Теперь выберите что-то в Xterm, и затем вы можете нажать Ctrl-V в другом месте.
Ян Гиббс

спасибо, что это сработало, но как только вы установили paracellite, перезапустите ваш терминал
user889030

10

Копировать между xterm и другими программами / документами / ...

Добавить в файл ~/.Xresources(или создать):

XTerm*selectToClipboard: true

Затем выполните команду:

xrdb -merge ~/.Xresources

Перезапустите xterm.



4

Это не совсем отвечает на ваш вопрос, но это помогло мне, поэтому я помещу это здесь, поскольку это может помочь кому-то еще:

  1. Скопируйте то, что вы хотите от xterm, выбрав свой текст
  2. Откройте вторую копию xterm и ваш любимый текстовый редактор (я использую vim)
  3. Используйте Shift + Insert (или средний щелчок), чтобы вставить в ваш текстовый редактор
  4. Сохраните файл.
  5. При необходимости откройте файл с помощью графического текстового редактора (например, gedit).
  6. Скопируйте текст и вставьте его в приложение, которое вы хотите.

3

Чтобы скопировать текст в Xterm, сначала выделите текст, а затем нажмите shift+ PrtScr. Чтобы вставить текст в Xterm, используйте shift+ Insert.


Не работает в Linux Mint Xfce, 64-битная.
Адриан Кейстер,

2

Когда вы выделяете текст, он автоматически помещается в буфер обрезки (например, в буфер обмена). При использовании функции «Копировать» из меню или с помощью сочетания клавиш оно попадает в основной буфер обмена.

Чтобы вставить из вырезанного буфера в ваш xterm, щелкните средней кнопкой мыши. Чтобы вставить из буфера обмена в свой xterm, нажмите среднюю кнопку мыши.


1

Смотрите здесь для объяснения проблем вставки с xterms и современными приложениями / оконными менеджерами: http://www.davidsimmons.com/soft/xtermhacks/#copynpaste


Добро пожаловать в Спросите Ubuntu! Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
Эрик Карвалью

1

Xterm использует основной выбор X11, который отличается от буфера обмена. Программа xsel может быть использована для копирования первичного выделения в буфер обмена:

xsel -op | xsel -ib

Для этого я определил Meta-c во Fluxbox для этого.

Mod4 c :Exec xsel -op | xsel -ib

Это удобно для программ Windows, которые поддерживают только один буфер обмена (например, VirtualBox).


0

В остальном у меня есть полезный менеджер буфера обмена Glipper, работающий на 12.04.
Если я выберу xterm символы, они появятся в новой записи Glipper.
Если я выберу эту запись (кнопку) среди этой последовательности, из нее придет следующая вставка и вставит эти символы в любое приложение.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.