Mac OS X 클립 보드로 텍스트를 잘라 내고 복사하도록 emacs 구성


16

emacsemacs (기본 터미널 버전)에서 텍스트를 복사 / 잘라내어 다른 곳 (X Window 프로그램으로)에 붙여 넣을 수 있도록 구성 할 수 있습니까 ?


Nitpick : "기본 터미널 버전"이라고 말하지만 Emacs 의 기본 기능 모드는 텍스트 터미널 대신 GUI를 사용하는 것입니다. 아마도 /usr/bin/emacsApple이 OSX와 함께 번들로 제공하고 텍스트 터미널로 임의로 제한 된 고대 실행 파일을 언급하고 있습니까?
Stefan

답변:


4

현재 지역을 OS X 클립 보드에 복사하려면

(shell-command-on-region (region-beginning) (region-end) "pbcopy")

OS X 붙여 넣기 버퍼를 Emacs 킬 링에 복사하는 역은 권장되지 않습니다. 킬 링과 클립 보드는 구조가 매우 다르며 클립 보드를 킬 링에 밀어 넣는 방법에 대한 정답은 없습니다. 여전히 pbpaste수동으로 실행 하여 현재 클립 보드 내용을 가져올 수 있습니다 .


이것은 나를 위해 작동하지 않았습니다. 그러나이 Emacs 게시물 에 표시된 솔루션이 작동합니다.
Galder Zamarreño

8

이것을 다음에 추가하십시오 ~/.emacs:

(defun pbcopy ()
  (interactive)
  (call-process-region (point) (mark) "pbcopy")
  (setq deactivate-mark t))

(defun pbpaste ()
  (interactive)
  (call-process-region (point) (if mark-active (mark) (point)) "pbpaste" t t))

(defun pbcut ()
  (interactive)
  (pbcopy)
  (delete-region (region-beginning) (region-end)))

(global-set-key (kbd "C-c c") 'pbcopy)
(global-set-key (kbd "C-c v") 'pbpaste)
(global-set-key (kbd "C-c x") 'pbcut)

iTerm 2에서 Emacs를 사용하는 경우 환경 설정에서 키 조합을 다시 매핑 할 수도 있습니다.

그런 다음에 다음과 같이 추가하십시오 ~/.emacs.

(global-set-key (kbd "<f13> c") 'pbcopy)
(global-set-key (kbd "<f13> v") 'pbpaste)
(global-set-key (kbd "<f13> x") 'pbcut)

여전히 가장 좋은 대답입니다. 감사! iterm의 경우, "Actions"를 작성하려면 "Escape code 보내기"를 선택하고 선행 "^ [."을 생략하십시오. ( "텍스트 보내기"작업 유형으로 작동하지 않음)
Jay

3

다음은 Daniel X의 Emacs 킬링에 OS X 클립 보드를 통합하는 솔루션입니다. https://github.com/wesen/emacs/blob/master/pbcopy.el

저자의 의견 :

Mac OSX 터미널에서 Emacs를 실행할 때 킬 링이 클립 보드와 상호 작용할 수 있도록합니다 (킬 킬 링 기능을 그대로 유지함). 모든 내가 그랬어 수정했습니다 xclip.el와 함께 작동하도록 pbcopy하고 pbpaste. xclip.el의 저자 인 Leo Shidai Liu에게 진심으로 감사드립니다.


1

다음은 작동합니다. 여기에서 가져 왔습니다. :)

(defun copy-from-osx ()
  (shell-command-to-string "pbpaste"))

(defun paste-to-osx (text &optional push)
  (let ((process-connection-type nil))
    (let ((proc (start-process "pbcopy" "*Messages*" "pbcopy")))
      (process-send-string proc text)
      (process-send-eof proc))))

(setq interprogram-cut-function 'paste-to-osx)
(setq interprogram-paste-function 'copy-from-osx))

원본 게시물에 대한 링크를 추가 할 수 있습니까?
Vincent

0

OS X에 포함 된 emacs 버전이이 기능을 제공하기에는 너무 오래되었습니다.

다행히 emacs를 클립 보드에 통합 된 버전으로 업데이트 할 수 있습니다. http://emacsformacosx.com

업데이트 후 Ctrl+ Y를 사용 하여 emacs에 붙여 넣습니다.


아-말을 잊어 버렸습니다. 해당 사이트에서 다운로드 할 emacs 버전은 그래픽입니다 (즉, 터미널에서 실행되지 않음). 터미널의 응용 프로그램이 더 이상 찾을 수없는 해킹없이 클립 보드에 액세스하는 것은 불가능합니다. : /
Faiz Saleem 2016 년

2
pbcopy그리고 pbpaste여전히 존재하고 해킹되지 않습니다.

가능하지만 OP는 키보드 명령을 사용하여 복사하여 붙여 넣기를 원한다고 가정했습니다. 내가 말하고자하는 것은 터미널 응용 프로그램이 키보드 단축키를 사용하여 해킹없이 OS X 클립 보드와 함께 복사하여 붙여 넣을 수 없다는 것입니다.
Faiz Saleem 2016 년

"터미널 애플리케이션은 키보드 단축키를 사용하여 해킹없이 OS X 클립 보드와 함께 복사하여 붙여 넣을 수 없습니다." 때문에 이것은 분명히 사실이 아니다 pbcopypbpaste양단 응용 프로그램이 있습니다; 다른 터미널 앱은 자신이하는 일을하거나 단순히 직접 호출 할 수 있습니다.

내가 찾고있는 것은 pbcopyEmacs cut & copy에 연결 하는 것입니다. 가능합니까?
syntagma

0

게시물이 정말 유용하다는 것을 알았 습니다 (~ / .emacs 파일에서 2 개의 기능을 정의하고 단축키를 지정합니다).

해당 행을 .emacs 파일에 추가하면 새 셸 세션 (탭 / 창)을 열 때까지 해당 바로 가기에 액세스 할 수 없습니다. 변경 사항을 적용하십시오.


0

GNU ELPA에서 설치할 수 xclip-mode있는 xclip패키지 (예 :를 통해 M-x package-list-packages RET)를 제공 하여 텍스트 터미널에서 Emacs를 실행하는 동안 클립 보드와 투명하게 상호 작용할 수 있습니다 .

비슷한 질문 및 답변 은 /emacs/10900/ 을 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.