タクマ松下のブログ

情報科学科の学生が書く記録。フロントエンドとサーバサイド練習中!です!

emacsとかシェルでカレントディレクトリをクリップボードにコピーする

探すのが面倒だったので書きました.
ほぼ参考先そのままです!

(defun copy-current-dir ()
  (interactive)
  (let ((process-connection-type nil))
    (let ((proc (start-process "pbcopy" "*Messages*" "pbcopy")))
      (process-send-string proc default-directory)
      (process-send-eof proc))))

説明

default-directoryにカレントディレクトリのパスが入っています.
この変数はEmacs側で宣言済みぽいのでそのまま使えます.
start-processでpbcopyコマンドのprocessが走って,
そのprocessにdefault-directoryをそのまま流してやります.
(よくわからないけどこんな感じだと思います.)

補足

pbcopyコマンドはmacOSのコマンドです.
他のlinux系OSでは動きませんので注意.

ちなみにbash上でカレントディレクトリのコピーをしたいときにはこんな感じ.

$ pwd | pbcopy

パイプしているだけなので

$ cat hoge.txt | pbcopy

もできる!