Спільний доступ до буфера обміну Mac OS X внутрішнім сервером X


21

Я хотів би мати можливість копіювати та вставляти між рідними (какао?) Програмами MacOS X та тими, що працюють під внутрішнім X-сервером Mac.

В даний час я можу копіювати та вставляти самостійно. Якщо я виділяю текст у вікні xterm, я можу вставити його назад у будь-яке інше вікно X. Аналогічно, копіювання інформації поза X може бути вставлено у додатки, які також знаходяться поза X.

Як приклад, якщо я (точно в такому порядку):

  • Скопіюйте (виберіть за допомогою миші) "Копіювати за допомогою виділення X" у вікні xterm
  • Скопіюйте (редагуйте | копіюйте) "Текст у Firefox" у Firefox
  • Вставити (Shift Insert xmodmap) в нано, я отримаю "Копіювати за допомогою виділення X"
  • Вставити (Змінити | Вставити) тут я отримую -> Текст у Firefox
  • Вставити в MacVIM (Редагувати | Вставити) я отримую "Текст у Firefox"
  • Вставте в / usr / bin / vim (не графічний), я отримаю "Копіювати за допомогою виділення X"

Як увімкнути "обмін буфера обміну" між X та какао?

Xmodmap, який я використовую для вставки в X, є:

xmodmap -e "keycode 84 = Insert"

де 84 - клавіша Enter на цифровій клавіатурі. Так Shift Enter дає мені вставити.


Чи відповідає це в X додатках? Ви пробуєте це у звичайному xtermчи подібному, vimчи ні, чи щось із власними буферами? Яку версію ОС X ви використовуєте? Мій буфер обміну ділиться по всьому Какао та X11, як очікувалося в 10.5.7.
jtb

Привіт, jtb, дякую за допомогу. Я використовую vim і мені знайомі проблеми навколо використання його внутрішніх буферів. Я зазвичай обманюю і переходжу в режим редагування, потім вставляю з меню редагування gvim (або MacVim). Я додав додаткову інформацію до своєї публікації, щоб уточнити інші частини вашого питання.
kwutchak

Ах, дякую за додаткову інформацію. Я бачу в основному те, що ви описуєте, хоча вставка на кроці 3 працює (за допомогою середнього клацання, я не маю вставку). Command-C, схоже, копіюється у буфер обміну, якщо у мене є текст, вибраний у X11, але я бачу, що ви маєте на увазі, що за допомогою нативної операції копіювання / вставки X він не синхронізований належним чином.
jtb

Для останньої версії OSX (я використовую 10.12), наступні види робіт: stackoverflow.com/a/9525347/1353267
Samveen

Відповіді:


14

Ви можете ввімкнути синхронізацію буфера обміну, відредагувавши ~/Library/Preferences/org.x.X11.plistта додавши наступні п'ять булевих клавіш 1 (і перевіривши їх).

sync_clipboard_to_pasteboard
sync_pasteboard
sync_pasteboard_to_clipboard
sync_pasteboard_to_primary
sync_primary_on_select

Перезапустіть X11, і вони повинні бути належним чином синхронізовані.

Редагувати: ключі можна додати або за допомогою Редактора списку властивостей, або за допомогою наступних команд терміналу:

defaults write org.x.X11 sync_clipboard_to_pasteboard -boolean true
defaults write org.x.X11 sync_pasteboard -boolean true
defaults write org.x.X11 sync_pasteboard_to_clipboard -boolean true
defaults write org.x.X11 sync_pasteboard_to_primary -boolean true
defaults write org.x.X11 sync_primary_on_select -boolean true

Альтернативним рішенням є встановлення останньої версії XQuartz, яка розкриває ці параметри через панель Налаштування X11 >> Пастельна дошка .


Цей рядок набраний на моєму xterm та скопійований поперек ...;) Цей рядок успішно вставлено назад у мій xterm ...;) Ще один випадок, коли моя дружина не зрозуміла, наскільки надзвичайно задовольняє це виправлення !! Дякую дуже, дуже
kwutchak

Спасибі за питання. Mac має звичку вдаряти Cmd + C настільки, що я не усвідомлював, чого мені не вистачає. Але я дуже радий, що зараз це є в моєму конфігурації.
jtb

Я встановив XQuarts і змінив варіанти для нього. Коли я ssh до віддаленої системи з увімкненою XForwarding (для обох систем) і додаю речі до буфера обміну за допомогою xclip (наприклад: ls | xclip), буфер обміну в моїй локальній системі (mac os x) не змінюється. Що я пропускаю?
cwd

4
Я думаю, що правильний файл, до якого зараз потрібно писати,org.macosforge.xquartz.X11
Кіт Смілі,

2

Ви також можете перекомпілювати vim-7.3 та додати наступне у свій .vimrc:

set clipboard=unnamed

Тоді ви зможете зробити «yy» у vim та наклеїти в какао за допомогою Cmd + V. І навпаки: скопіюйте з Cmd + V в какао та вставте у vim з 'p'


зауважте, що clipboardдля того, щоб це працювало , ваш vim повинен бути складений з опцією ввімкнути. Ви можете побачити, чи це, виконавши vim --version | grep clipboard. Якщо це говорить +clipboard, то ви добрі. Якщо це скаже -clipboard, це не вийде.
egarcia
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.