Непоследовательное поведение при копировании и вставке. Есть ли исправление?

11

Я столкнулся с тем, что я могу лучше всего описать как «непредсказуемое» поведение «буфера обмена». Но по-своему, это на самом деле «предсказуемо» , так как это не ошибка X , как таковая.

Во многом это связано с тем, что разные приложения X по-разному используют разные функции X

Но на самом деле это не помогает понять, что это не «на самом деле» ошибка. потому что он чувствует , как ошибка!

Ниже приведен список того, что я нашел / протестировал.

Есть ли какой-нибудь способ (демон?), Который разглаживает все эти морщины? Я бы предпочел что-то, что не сидит на панели.

Буфер обмена X / Ubuntu потенциально потрясающий из-за его способности 2/3 уровней, но немного раздражает из-за несовместимых реализаций ...

Я пытался понять, почему копирование / вставка не всегда делала то, что я ожидал ... Удивительно, что вы можете узнать, когда читаете информационные документы :) ... Но вопрос может поразить цель быстрее.

Основная проблема возникает, когда исходное приложение закрывается, и вы пытаетесь получить доступ к данным «буфера обмена», полученным из этого приложения.

Приложения X GUI имеют два основных метода копирования / вставки (режимы).

Mode NAME    Text Copy method         Text Paste  method
----------   ---------------------    -------------------
PRIMARY      currently selected       mouse middle-click
CLIPBOARD    Control+C selection      Control+V

Я проверил поведение режимов выбора для нескольких различных приложений X: gvim, gedit, firefox, и gnome-terminal.

NB: * Все вставки были сделаны в gedit * Исходный код gedit был из другого (корневого) экземпляра.
* Я попробовал пару «менеджеров», parceliteи pastie, но я не вижу смысла сравнивать их, потому что ни один из них не обращается к проблема. То есть обычно ожидаемые действия клавиатуры копирования / вставки "противоречивы"

+ --------------------------------------------- + ------------------------------------------- + ------------
| Modes used in the source Application          | Availability upon CLOSING the Applicaton    | Application
+ --------------------------------------------- + ------------------------------------------- + ------------
| --- No manager --- 
| PRIMARY only, no CLIPBOARD Copy/Cut used:     | PRIMARY Empty!   (previous)CLIPBOARD ok     | (all tested)
|                                               | --                                          |      
| CLIPBOARD as last action (implicit PRIMARY):  | PRIMARY Empty!             CLIPBOARD Empty! | gvim
|                                               | PRIMARY Empty!             CLIPBOARD ok     | gedit, gnome-terminal
|                                               | PRIMARY Empty!             CLIPBOARD Empty! | firefox
|                                               | --                                          |
| PRIMARY as last action, preceded by CLIPBOARD | PRIMARY ok                 CLIPBOARD Empty! | gvim
|                                               | PRIMARY Empty!             CLIPBOARD ok     | gedit, gnome-terminal
|                                               | PRIMARY Empty!             CLIPBOARD Empty! | firefox
| --- Manager: parcelite --- 
| PRIMARY only, no CLIPBOARD Copy/Cut used:     | PRIMARY ok       (previous)CLIPBOARD ok     | (all tested)
|                                               | --                                          |      
| CLIPBOARD as last action (implicit PRIMARY):  | PRIMARY ok                 CLIPBOARD Empty! | gvim, firefox
|                                               | PRIMARY ok                 CLIPBOARD ok     | gedit, gnome-terminal
|                                               | --                                          |      
| PRIMARY as last action, preceded by CLIPBOARD | PRIMARY ok                 CLIPBOARD Empty! | gvim, firefox
|                                               | PRIMARY ok                 CLIPBOARD ok     | gedit, gnome-terminal
| 
+ --------------------------------------------- + ------------------------------------------- + ------------
Peter.O
источник
Как бы я хотел прочитать всю вашу таблицу сразу :-(
Дон Хэтч

Ответы:

5

Это известное ограничение X, пожалуйста, обратитесь к этой статье официальной вики:

https://wiki.ubuntu.com/ClipboardPersistence

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

В вики-статье перечислены работающие и не работающие приложения (также единственное предложенное решение - установить parcelite в качестве менеджера буфера обмена)

OpenNingia
источник
Спасибо OpenNingia .. Вики полезна. Я довольно новичок в Linux, поэтому я был озадачен этим! но теперь, когда я это осознаю (ОЧЕНЬ осознаю! после того, как сам протестировал это приложение) ... ну, теперь я буду более внимателен к "синдрому отказа от курения" ... Наличие списка вики - это здорово; Мне не хотелось больше "тестировать" :( ... я попробую работать без пакета. Чем меньше вспомогательных приложений, тем лучше (для меня) ... Я пережил целую тысячу лет Windows без корзины; могу управлять буфером обмена (теперь, когда я знаю, как работают режимы выбора) ... это просто привычка (например, переходить дорогу).
Peter.O
Будем надеяться на лучшее, когда Ubuntu переключится на Wayland, надеюсь, они решат проблему! :)
OpenNingia
Parcellite не исправил для меня пустое состояние при выходе, мне все еще приходилось копаться в истории буфера обмена вручную, чтобы извлечь то, что я хотел. Тьфу. Я бы хотел, чтобы Mozilla просто внедрила стандарт ClipboardManager.
2010 года
Вероятно, это дефицит xulrunner, я не могу придумать никакого обходного пути.
OpenNingia
@bobince. Я подозреваю (основываясь на моих недавних исследованиях), что причина, по которой "parcelite" не может это исправить, заключается в том, что он не может ... Он может хранить только копии того, что проходит через X-выборы (PRIMARY-selection и CLIPBOAD -selection) ... "parcelite" никогда не помещает ничего в X-выбор . Это фундаментальная проблема (см. Ссылку OpenNingia) ... Различные приложения следуют разным стандартам, но «Google Summer Of Code 2010» ищет способы привести это в порядок ... так что все происходит ... (Ubuntu удаляется от самого X! .. это изменит положение дел в буфере обмена.
Peter.O
0

Попробуйте autocutsel, в репозиториях - он синхронизирует два. Вы должны добавить его в .bashrc или автозагрузку, или просто запустить его вручную (это командная строка, а не графический интерфейс), но он всегда работал хорошо для меня. Вы должны помнить, чтобы переключить фокус на поле (например, в браузере) или документ (gedit, kate, gvim ...) перед вставкой, иначе он не будет работать.

Фитцхью
источник
0

Я просто смотрел на GPaste, который я использую. Кажется, он обрабатывает действия копирования и вставки, даже если вы закрыли приложение, из которого скопировали!

Есть даже хорошее расширение для Gnome-shell :-)

bmbaker
источник