2017年4月4日火曜日

macOS Sierra で emacs のコピペとクリップボードを共有する方法

概要

ずっと解決できなかった問題がようやく解決したので紹介します

emacs では Ctrl+k や region を選択したあとの Ctrl+w でコピーができます
それを Ctrl+y で貼り付けます
Mac のクリップボードにそれらの情報を共有することができ pbcopy や pbpaste というコマンドを使うことで共有することができます
が、macOS Sierra にアップグレードしたあとから、その機能が使えなくなり泣く泣く機能を無効にしていました

環境

  • Mac OS X 10.12.3
  • emacs 24.5.1
  • reattach-to-user-namespace 2.5

reattach-to-user-namespace のインストール

ズバリこれをインストールすることで解決します
pbpaste と pbcopy が Sierra でも動作するために作られました

  • brew install reattach-to-user-namespace

.emacs の編集

pbpaste と pbcopy を使う部分に reattach-to-user-namespace を噛ませます

(if (eq sysname 'darwin)
    (progn
      (defun copy-from-osx ()
    (shell-command-to-string "reattach-to-user-namespace pbpaste"))
      (defun paste-to-osx (text &optional push)
    (let ((process-connection-type nil))
      (let ((proc (start-process "pbcopy" "*Messages*" "reattach-to-user-namespace" "pbcopy")))
        (process-send-string proc text)
        (process-send-eof proc))))
      (setq interprogram-cut-function 'paste-to-osx)
      (setq interprogram-paste-function 'copy-from-osx)
    )
    (message "This platform is not mac")
)

よくわからんと言う場合はそのままコピペすれば OK です
あとは .emacs を再度読み込むか emacs を再起動してください

これで emacs でコピペした情報がクリップボードにも共有されるようになります

最後に

知らぬ間に reattach-to-user-namespace なんという素晴らしいツールが出ていたとは、、
とりあえずこれでまた快適な emacs ライフが過ごせそうです

参考サイト

0 件のコメント:

コメントを投稿