Emacs 24.3 で killring と OS のクリップボード分離
以前に導入したEmacsWiki: Copy And PasteのEmacsのkillringとOSのクリップボードを分離する機能が動作しなくなってしまったので対応を考えた。具体的には
- symbol's function definition is void ns-get-pasteboard
- symbol's function definition is void ns-set-pasteboard
が出るようになってしまった。実際、*scratch*でこれらの関数があるのか試した結果が以下。
(fboundp 'ns-get-pasteboard) nil (fboundp 'ns-set-pasteboard) nil
これまでは使えていたので、上記関数はあったはずだが24.3では定義されていない?あるいはportを使ってインストールしたからか?いずれか今の時点ではわからないが、とりあえず上記の関数を使用した実装ではなく、EmacsWikiで紹介されているSimpleclipを導入することにした。手順は以下。
- cd /opt/local/share/emacs/24.3/site-lisp
- sudo curl -O http://www.emacswiki.org/emacs/download/simpleclip.el
- .emacs.d/init.el の設定変更
追加したinit.elの内容は以下。
(require 'simpleclip) (simpleclip-mode 1) (global-set-key [f5] 'simpleclip-cut) (global-set-key [f6] 'simpleclip-copy) (global-set-key [f7] 'simpleclip-paste)
これでkillringとOSのクリップボードの分離ができた。
ns-get-pasteboardとns-set-pasteboardのfboundpがnilになってしまったのは気になるな。portを使った場合はEmacs.appがないみたいだからGUI版がないように見える。nsで始まる他のコマンド探してやってみたが、少なくともns-toggle-fullscreenもnilになった。なるべくGUIじゃなくてTeminalの中で使用するようにしたいからportのインストールで十分なのだが、気が向いたら24.3をソースから、あるいはdmgでインストールして同じ結果になるか試してみようかな・・・たぶんやらないだろうが。。。