Совместное использование буфера обмена Mac OS X с внутренним X-сервером

5863
kwutchak

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

В настоящее время я могу копировать и вставлять самостоятельно. Если я выделю текст в окне xterm, я могу вставить его обратно в любое другое окно на основе X. Аналогично, копирование информации вне X может быть вставлено в приложения, которые также находятся вне X.

В качестве примера, если я (именно в таком порядке):

  • Скопировать (выбрать с помощью мыши) «Копировать с помощью выделения X» в окне xterm
  • Копировать (Edit | Copy) «Текст в Firefox» в Firefox
  • Вставить (Shift Insert xmodmap) в нано я получаю «Копировать с использованием X выбора»
  • Вставить (Edit | Paste) здесь я получаю -> Текст в Firefox
  • Вставить в MacVIM (Правка | Вставить) Я получаю «Текст в Firefox»
  • Вставить в / usr / bin / vim (не графический) Я получаю «Копирование с использованием выделения X»

Как включить «совместное использование буфера обмена» между X и Cocoa?

Xmodmap, который я использую для вставки в X:

xmodmap -e "keycode 84 = Insert" 

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

21
Это согласуется с X-приложениями? Вы пробуете его в простом `xterm` или подобном, а не в` vim` или что-то с его собственными буферами? Какую версию OS X вы используете? Мой буфер обмена используется в Какао и X11, как и ожидалось в 10.5.7. jtb 15 лет назад 0
Привет, JTB, спасибо за вашу помощь. Я использую vim и знаком с проблемами использования его внутренних буферов. Я обычно изменяю и переключаюсь в режим редактирования, затем вставляю из меню редактирования gvim (или MacVim). Я добавил дополнительную информацию в свой пост, чтобы прояснить другие части вашего вопроса. kwutchak 15 лет назад 0
Ах, спасибо за дополнительную информацию. Я вижу в основном то, что вы описываете, хотя вставка на шаге 3 работает (при среднем щелчке у меня не вставлено сопоставление). Command-C действительно копирует в собственный буфер обмена, если у меня выделен текст в X11, но я понимаю, что вы имеете в виду, что при использовании собственных операций X копирования / вставки X он не синхронизируется должным образом. jtb 15 лет назад 0
Для последней версии OSX (я использую 10.12), работает следующее: https://stackoverflow.com/a/9525347/1353267 Samveen 6 лет назад 0

2 ответа на вопрос

14
jtb

Вы можете включить синхронизацию буфера обмена, отредактировав ~/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 15 лет назад 0
Спасибо за вопрос. У меня есть привычка нажимать Cmd + C до такой степени, что я не осознавал, чего мне не хватало. Но я очень рад иметь это в моем конфиге сейчас. jtb 15 лет назад 0
Я установил XQuarts и изменил параметры для него. Когда я подключаюсь к удаленной системе с помощью XForwarding (в обеих системах) и добавляю что-то в буфер обмена с помощью xclip (например, ls | xclip), буфер обмена в моей локальной системе (mac os x) не изменяется. Что мне не хватает? cwd 12 лет назад 0
Я думаю, что правильный файл для записи сейчас `org.macosforge.xquartz.X11` Keith Smiley 10 лет назад 4
2
user47498

Вы также можете перекомпилировать vim-7.3 и добавить следующее в ваш .vimrc:

set clipboard=unnamed 

Тогда вы сможете делать 'yy' в vim и вставлять в Какао с помощью Cmd + V. И наоборот: скопируйте с помощью Cmd + V в Какао и вставьте в vim с помощью 'p'

обратите внимание, что ваш vim должен быть скомпилирован с опцией `clipboard`, чтобы это работало. Вы можете увидеть это, выполнив `vim --version | grep clipboard`. Если там написано `+ clipboard`, значит, вы хороши. Если написано `-clipboard`, это не сработает. egarcia 11 лет назад 0

Похожие вопросы