vim / gvim не вдалося поставити буфер обміну X11 в регістри "+ або" *?


15

Через відсутність захисту зі стандартним сервером vino я перейшов на використання x11vnc на своєму Linux (із Xubuntu 14.04) і SSVNC на вікні.

З vino, вирізати та вставити з Windows на Linux та Windows, у двох напрямках було лускатим (1), але коли він працював, він працював для кожної програми; Я можу без проблем користуватися vimреєстром "+. Я біжу (2)

autocutsel -fork 

зазвичай таким чином, що вибір "середнього клацання" та ctrl-c / v є однаковими.

Тепер, коли я використовую x11vnc (викликається:), x11vnc -forever -repeat -safer -usepw -ssl -autoport 6000щоб мати безпечне, зашифроване з'єднання, виникла проблема:

  1. Я можу без проблем копіювати на Windows і вставляти у віддалені термінали Linux, libreoffice тощо в обох напрямках.

  2. У vimабо gvimбудь-якій спробі вставити "+pабо "*pсказатиE353: Nothing in register *

  3. Знову ж таки, vimабо gvim, навпаки, працює: якщо я "+yyтоді зможу вставити річ на сторону Windows.

Як хто-небудь підказки щодо цієї проблеми? Дивна річ у тому, що паста працює скрізь, де я перевірив, але в vim...

Package                 Installed       Previous        Now             State
=======================-===============-===============-===============-=====
vim                     2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  install
vim-gnome               2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  install

Виноски:

(1) Неможливо знайти помилку --- про це повідомляється. Через деякий час він перестає працювати.

(2) Я спробував з і без. Ніяких змін.


У мене було багато проблем з x11vnc, пов’язаними з різними локальними мовами на хості та клієнті, особливо під час контролю гостей vmware через vnc на сервері. Нарешті я 'вирішив' це, встановивши сервер nomachine в хост-системі. Я знаю, що це, мабуть, не рішення, яке ви маєте на увазі, але nomachine і nxclient є безпечними, дуже швидкими, і все налаштовується через ssh.
Флойд

2
Я не використовую vnc, але я усунув усі свої проблеми з взаємодією буфера обміну між vim та OS: (1) використовуючи set clipboard=unnamedplusкожен Linux, який я використовую (2) alias vim='gvim -v'у моєму .bashrcs (щоб обійти певні дистрибутиви, що компілюють vim без підтримки буфера обміну X) (3) set clipboard=unnamedу вікнах. Сподіваюся, це допомагає.
Патрик Обара

@PatrykObara спробує ... наступного разу мені доведеться використовувати ПК з Windows. У мене зараз тільки налаштування Linux і немає проблем ... Дякую.
Рмано

Відповіді:


1

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

По-перше, це зрозуміти зацікавлені буфери. У більшості випадків це чотири з них. (Більше можливо, якщо ви користуєтеся інструментами управління буфером обміну.) X11 визначає три буфери обміну: Первинний, Вторинний та Буфер обміну. Вторинний рідко використовується (і майже точно не є вашою проблемою), тому ми будемо ігнорувати його. Програми, які використовують для вставки середній клацання (xterm та ін.), Зазвичай використовують основний буфер обміну. Програми, які роблять вставку для стилю Windows (натисніть кнопку "Редагувати", "Вставити кнопку" чи "V", керуйте V), іноді використовують лише буфер обміну. Деякі програми роблять і те, і інше (Google Chrome вставляє з основного за допомогою середнього клацання та з буфера обміну з контрольним V). Далі - буфер обміну VNC (лише один), а там буфер обміну вікон. (Якщо ви використовуєте переглядач vnc, який працює на X11, все ускладнюється, але це буде мати сенс після роздумів над цим. ) Буфер обміну VNC особливий тим, що він відслідковує різні оновлення інших буферів обміну для того, щоб вони були актуальними. Якщо ви ігноруєте основний буфер обміну, це досить просто, оскільки останній оновлений буфер обміну копіюється на всі інші. Завдання полягає в тому, що бажана поведінка первинного буфера обміну недостатньо визначена. Я бачив таку поведінку різних реалізацій vnc:

  1. Ігноруйте основне, використовуйте лише буфер обміну.
  2. Ігноруйте буфер обміну, використовуйте лише основний.
  3. Використовуйте найновіші для Unix для копій Windows, скопіюйте в обох для Windows в Unix копії.
  4. Постарайтеся бути розумними: використовуйте лише первинне, поки буфер обміну не використовується, тоді використовуйте лише буфер обміну.
  5. Постарайтеся бути розумнішими: використовуйте первинне до зміни буфера обміну, тоді ігноруйте основне, поки не відбудеться зміна вікон, потім використовуйте наступне змінене, знову ігноруючи основне після використання буфера обміну.
  6. Постарайтеся бути ще розумнішими. (Я ніколи не з'ясовував, що вони намагаються зробити з цим, але зазвичай це робилося правильно)

Далі - інструменти. Є два інструменти, які я вважаю важливими для налагодження проблем буфера обміну: текстовий редактор (блокнот працює нормально для цього) та xclip. Переглядач буфера обміну Windows - це приємно, але не важливо.

Тепер процедура: з кожної програми в групі, з якої ви вирішуєте проблеми, виберіть і скопіюйте текст, перевіряючи стан усіх трьох доступних буферів обміну. (Буфер обміну vnc дуже важко переглядати безпосередньо і не є корисним безпосередньо, оскільки він зазвичай не зберігає дані, а лише метадані.) Відповідають на ці запитання: який буфер обміну використовує кожен додаток? який порядок вони використовуються?

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


Спасибі! Я, на жаль, зараз не можу перевірити, у мене майже вибиті вікна з ПК ;-). Спробую розслідувати, як тільки я змушений знову використовувати Windows ...
Rmano
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.