2015年3月24日火曜日

emacs で clipborad を共有する方法

概要

emacsの「-nw」で起動した状態でクリップボードを共有する方法を紹介します

環境

  • emacs 24.4.1
  • Max OS X 10.10.2 or Cygwin 1.7.32

elisp

.emacsに以下を書けばOKです
Githubで公開している.emacsに記載しているので最新版はそっちで管理しています

以下は一部抜粋のサンプル

; for clipborad
(setq sysname system-type)
(if (eq sysname 'darwin)
    (progn
      (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)
    )
    (message "This platform is not mac")
)
(if (eq sysname 'cygwin)
    (progn
      (defun paste-from-cygwin ()
        (with-temp-buffer
          (insert-file-contents "/dev/clipboard")
          (buffer-string)))
      (defun cut-to-cygwin (text &optional push)
        (with-temp-file "/dev/clipboard"
          (insert text)))
      (setq interprogram-cut-function 'cut-to-cygwin)
      (setq interprogram-paste-function 'paste-from-cygwin)
   )
   (message "This platform is not cygwin")
)

emacsでプラットフォーム情報を取得できるので、それに応じてクリップボードを使うコマンドを分けています
Windows上で開いているターミナルアプリでSSHログインした先のLinuxサーバで起動上で動作しているemacsとクリップボードを共有する方法が知りたい
そもそもできるのだろうか

0 件のコメント:

コメントを投稿