MacOSのFinder上でSPCを押すとQuick Lookが起動し、ファイルの中身をチラ見できるということは、MacOSユーザであれば周知のことだろう。
Emacsのdired-mode
でそれを利用可能にした、という記事はいくつか見つかる。
これらの記事では以下の関数が紹介されている:
(defun do-ql-dwim ()
(interactive)
(let* ((proc (get-buffer-process "*Async Shell Command*")))
(if proc
(kill-process proc)
(dired-do-async-shell-command
"qlmanage -p 2>/dev/null" ""
(dired-get-marked-files)))))
上記の関数を定義したあとで、dired-modeが有効になっているバッファでdo-ql-dwim
を実行すればQuick Lookを呼び出すことができる(カーソル下のファイルを対象に)。これでも悪くはないのだが、"*Async Shell Command*"というバッファが別ウィンドウにポップアップし、そのまま残り続けるのが不満であった。
そこで以下の設定を書き、見た目の上では件のバッファがポップアップしないようにしたわけである。
(with-eval-after-load "dired"
(define-key dired-mode-map (kbd "SPC") #'dired-quick-look)
(defun dired-quick-look ()
(interactive)
(let ((proc (get-buffer-process "*Async Shell Command*")))
(if proc
(kill-process proc)
(dired-do-async-shell-command
"qlmanage -p 2>/dev/null" ""
(dired-get-marked-files))))
(delete-window
(get-buffer-window "*Async Shell Command*"))))
この設定では、dired-mode
時にSPC
とするとQuick Lookによるプレビューが利用可能になる。キーバインドは各自の好みで変更可能である。