Udostępnianie schowka Mac OS X wewnętrznemu serwerowi X.

21

Chciałbym móc kopiować i wklejać między natywnymi (Cocoa?) Aplikacjami MacOS X a tymi, które działają na wewnętrznym serwerze X Mac.

Obecnie mogę samodzielnie kopiować i wklejać. Jeśli zaznaczę tekst w oknie Xterm, mogę wkleić go z powrotem w dowolnym oknie opartym na X. Podobnie kopiowanie informacji poza X można wkleić do aplikacji, które również znajdują się poza X.

Na przykład, jeśli I (w dokładnie tej kolejności):

  • Kopiuj (wybierz za pomocą myszy) „Kopiuj za pomocą wyboru X” w oknie xterm
  • Kopiuj (Edytuj | Kopiuj) „Tekst w Firefox” w Firefox
  • Wklej (Shift Insert xmodmap) do nano Dostaję „Kopiuj używając wyboru X”
  • Wklej (Edytuj | Wklej) tutaj otrzymuję -> Tekst w Firefoksie
  • Wklej w MacVIM (Edycja | Wklej) Dostaję „Tekst w Firefoksie”
  • Wklej do / usr / bin / vim (nie graficzny) Dostaję „Kopiuj używając wyboru X”

Jak włączyć „współdzielenie schowka” między X a Cocoa?

Xmodmap, którego używam do wklejenia w X, to:

xmodmap -e "keycode 84 = Insert"

gdzie 84 to klawisz Enter na klawiaturze numerycznej. Shift Enter daje mi wklej.

kwutchak
źródło
Czy jest to spójne w aplikacjach X? Próbujesz tego w zwykły xtermlub podobny sposób, vimczy nie, czy z własnymi buforami? Z której wersji OS X korzystasz? Mój schowek jest udostępniany w Cocoa i X11, zgodnie z oczekiwaniami w 10.5.7.
jtb
Cześć, dziękuję za twoją pomoc. Używam vima i znam problemy związane z używaniem jego wewnętrznych buforów. Zwykle oszukuję i przełączam się w tryb edycji, a następnie wklejam z menu edycji gvim (lub MacVim). Dodałem dodatkowe informacje do mojego postu, aby wyjaśnić pozostałe części pytania.
kwutchak
Ach, dzięki za dodatkowe informacje. Widzę głównie to, co opisujesz, chociaż wklejanie w kroku 3 działa (używając środkowego kliknięcia, nie mam mapowania Wstaw). Command-C wydaje się kopiować do natywnego schowka, jeśli mam zaznaczony tekst w X11, ale widzę, co masz na myśli, mówiąc, że przy użyciu natywnych operacji kopiowania / wklejania X nie jest poprawnie zsynchronizowany.
jtb
W najnowszej wersji OSX (używam 10.12) następujące prace: stackoverflow.com/a/9525347/1353267
Samveen

Odpowiedzi:

14

Możesz włączyć synchronizację schowka, edytując ~/Library/Preferences/org.x.X11.plisti dodając następujące pięć klawiszy boolowskich 1 (i sprawdzając je).

sync_clipboard_to_pasteboard
sync_pasteboard
sync_pasteboard_to_clipboard
sync_pasteboard_to_primary
sync_primary_on_select

Uruchom ponownie X11 i powinny one zostać poprawnie zsynchronizowane.

Edycja: Możesz dodać klucze za pomocą Edytora listy właściwości lub za pomocą następujących poleceń terminalu:

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

Alternatywnym rozwiązaniem jest zainstalowanie najnowszej wersji XQuartz, która udostępnia te opcje za pomocą panelu Preferencje X11 >> Tablica kartonowa.

jtb
źródło
Ta linia wpisała się na mój Xterm i skopiowała ...;) Ta linia z powodzeniem wkleiła się z powrotem do mojego Xtermu ...;) Kolejny przypadek, w którym moja żona nie zrozumie, jak bardzo satysfakcjonująca jest ta poprawka !! Dziękuje bardzo.
kwutchak
Dzięki, że pytasz. Mac ma w zwyczaju uderzać w Cmd + C w stopniu, w jakim nie zdawałem sobie sprawy z tego, czego mi brakowało. Ale cieszę się, że mam to teraz w mojej konfiguracji.
jtb
Zainstalowałem XQuarts i zmieniłem jego opcje. Kiedy ssh do zdalnego systemu z włączonym XForwarding (w obu systemach) i dodaję rzeczy do schowka za pomocą xclip (np .: ls | xclip) schowek w moim systemie lokalnym (Mac OS X) nie zmienia się. czego mi brakuje?
cwd
4
Myślę, że poprawnym plikiem do napisania jest terazorg.macosforge.xquartz.X11
Keith Smiley
2

Możesz również ponownie skompilować vim-7.3 i dodać do .vimrc:

set clipboard=unnamed

Następnie będziesz mógł zrobić „yy” w vimie i wkleić w kakao za pomocą Cmd + V. I odwrotnie: skopiuj za pomocą Cmd + V w kakao i wklej w vimie za pomocą „p”

użytkownik47498
źródło
zauważ, że twój vim musi zostać skompilowany z clipboardopcją on, aby to zadziałało. Możesz sprawdzić, czy to przez wykonanie vim --version | grep clipboard. Jeśli to mówi +clipboard, jesteś dobry. Jeśli to powie -clipboard, to nie zadziała.
egarcia