내부 X 서버와 Mac OS X 클립 보드 공유


21

기본 (Cocoa?) MacOS X 앱과 Mac의 내부 X 서버에서 실행되는 앱간에 복사하여 붙여 넣기를하고 싶습니다.

현재 독립적으로 복사하여 붙여 넣을 수 있습니다. xterm 창에서 텍스트를 선택하면 다른 X 기반 창에 다시 붙여 넣을 수 있습니다. 마찬가지로 X 외부의 정보 복사는 X 외부의 응용 프로그램에 붙여 넣을 수도 있습니다.

예를 들어, (정확히이 순서대로)

  • xterm 창에서 "X 선택을 사용하여 복사"복사 (마우스를 사용하여 선택)
  • Firefox에서 "Firefox의 텍스트"복사 (편집 | 복사)
  • 나노에 붙여 넣기 (Shift Insert xmodmap) "X 선택을 사용하여 복사"
  • 붙여 넣기 (편집 | 붙여 넣기) 여기에 Firefox의 텍스트가 나타납니다.
  • MacVIM에 붙여 넣기 (편집 | 붙여 넣기) "Firefox의 텍스트"가 나타납니다.
  • / usr / bin / vim에 붙여 넣기 (그래픽이 아님) "X 선택을 사용하여 복사"가 표시됩니다.

X와 Cocoa간에 "클립 보드 공유"를 어떻게 활성화합니까?

X에 붙여 넣을 때 사용하는 xmodmap은 다음과 같습니다.

xmodmap -e "keycode 84 = Insert"

여기서 84는 숫자 키패드의 Enter 키입니다. Shift Enter는 붙여 넣기를 제공합니다.


X 응용 프로그램에서 일관성이 있습니까? 자체 버퍼가 xterm아닌 일반 또는 유사한 방식으로 시도하고 vim있습니까? 어떤 OS X 버전을 사용하고 있습니까? 내 클립 보드는 10.5.7에서 예상 한대로 Cocoa 및 X11에서 공유됩니다.
jtb

JTB 님, 도와 주셔서 감사합니다. vim을 사용하고 내부 버퍼 사용과 관련된 문제에 익숙합니다. 나는 일반적으로 부정 행위를하고 편집 모드로 전환 한 다음 gvim (또는 MacVim의) 편집 메뉴에서 붙여 넣습니다. 귀하의 질문의 다른 부분을 명확히하기 위해 게시물에 추가 정보를 추가했습니다.
kwutchak

아, 추가 정보 감사합니다. 3 단계의 붙여 넣기가 작동하지만 중간 클릭을 사용하면 삽입이 매핑되어 있지 않지만 대부분 설명하는 내용이 표시됩니다. X11에서 텍스트를 선택하면 Command-C가 기본 클립 보드에 복사되는 것처럼 보이지만 기본 X 복사 / 붙여 넣기 작업을 사용하면 제대로 동기화되지 않았다는 것을 알 수 있습니다.
jtb

최신 버전의 OSX (저는 10.12 사용)의 경우 다음과 같이 작동합니다. stackoverflow.com/a/9525347/1353267
Samveen

답변:


14

~/Library/Preferences/org.x.X11.plist다음 5 가지 부울 키 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

다른 해결책은 X11 환경 설정 >> 페이스트 보드 패널을 통해 이러한 옵션을 표시하는 최신 버전의 XQuartz 를 설치하는 것 입니다.


이 줄은 내 xterm에 입력되어 복사되었습니다 ...;)이 줄은 내 xterm에 성공적으로 다시 붙여 넣었습니다 ...;) 아내 가이 수정 사항을 얼마나 극도로 만족시키는 지 이해하지 못하는 또 다른 경우입니다! 대단히 감사합니다.
kwutchak

질문 주셔서 감사합니다. Mac은 내가 잃어버린 것을 깨닫지 못할 정도로 Cmd + C를 치는 습관이 있습니다. 그러나 지금 내 구성에서 이것을 사용하게되어 기쁩니다.
jtb

XQuarts를 설치하고 옵션을 변경했습니다. XForwarding이 활성화 된 (두 시스템 모두) 원격 시스템에 ssh하고 xclip (예 : ls | xclip)을 사용하여 클립 보드에 항목을 추가해도 로컬 시스템 (mac os x)의 클립 보드는 변경되지 않습니다. 내가 무엇을 놓치고 있습니까?
cwd

4
나는 지금 올바른 파일을 쓸 것이라고 생각합니다org.macosforge.xquartz.X11
Keith Smiley

2

vim-7.3을 다시 컴파일하고 .vimrc에 다음을 추가 할 수도 있습니다.

set clipboard=unnamed

그런 다음 vim에서 'yy'를 수행하고 Cmd + V를 사용하여 코코아에 붙여 넣을 수 있습니다. 그리고 그 반대의 경우 : Cocoa에서 Cmd + V로 복사하고 'p'로 vim에 붙여 넣습니다.


이 기능을 사용하려면 vim을 clipboard옵션 과 함께 컴파일 해야합니다. 당신은 그것을 실행하여 볼 수 있습니다 vim --version | grep clipboard. 이라고 표시 +clipboard되면 괜찮습니다. 이 말한다면 -clipboard,이 작동하지 않습니다.
egarcia
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.