文書ファイルに関してはEmacsでほとんどの用は足せるのだが,画像ファイルを扱う際はMacの場合Finderを使用することが多い.そこで,画像ファイルのブラウズや外部アプリによるオープンなどもEmacsでできれば,Finderとの行き来の必要がなくなり,より便利になるのに,と常々感じていた.以前の記事(peep-diredで画像をチラ見して,orgファイルに簡単にリンクを貼り付ける(おまけ:最近開けたdirectoryを一覧表示する方法))で紹介したパッケージでも画像のブラウズや操作に不満があった.そこで色々調べてみると,なんとEmacsにすでに便利なパッケージが標準で入っているではないか!その名も"Image Dired"! しかも,C -<RET> 一発でGIMPで画像を開けられるように設定もできる.今回はこのパッケージのセットアップや使用法について記録しておく.
References
- viewing images inside emacs ご本家
- Image Dired
- Browse your images in Emacs using image dired この動画は懇切丁寧で,非常に参考になった.
- Emacsで画像プレビュー image-diredを使用可能にする
Setup
- image dired自体は標準でEmacsに入っているので特にインストールする必要はない.
- convertコマンドを使うので,imagemagickをインストールする.homebrewを使うのが簡単.
$ brew install imagemagick
$ brew info imagemagick
==> imagemagick: stable 7.1.0-53 (bottled), HEAD
Tools and libraries to manipulate images in many formats
https://imagemagick.org/index.php
/opt/homebrew/Cellar/imagemagick/7.1.0-53 (807 files, 31.0MB) *
Poured from bottle on 2022-12-09 at 22:44:27
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/imagemagick.rb
License: ImageMagick
==> Dependencies
Build: pkg-config ✔
Required: freetype ✔, ghostscript ✔, jpeg-turbo ✔, libheif ✔, liblqr ✔, libpng ✔, libraw ✔, libtiff ✔, libtool ✔, little-cms2 ✔, openexr ✔, openjpeg ✔, webp ✔, xz ✔, libomp ✔
==> Options
--HEAD
Install HEAD version
Usage
-
使い方は, Browse your images in Emacs using image dired を見ればほぼ全てわかると思うが,一応簡単に説明しておく.
-
~/Data/MyBlog/image_dired_figuresに必要な画像があるとする.このdirectoryをemacsのdiredで開くと下図のようになっている.
-
この状態で,emacsに, M-x image-dired と打つと,当該ディレクトリのすべての画像のサムネールが表示され,サムネールの画像の一つを選択してスペースを叩くとその画像が別のwindowに表示される.さらにスペースを叩くと次の画像が表示される.Delete keyを叩くとひとつ前の画像に戻る.下図のように,windowを3分割すると見やすいかもしれない.
-
サムネールで選択された画像は青枠で囲まれ,どの画像を選択しているか分かるようになっている.
-
また,dired bufferで,いくつか画像を選択してマークをつけ(mを叩く),C-t d (M-x image-dired-display-thumbs)と叩けば,マークをつけた画像のみのサムネールが表示される.
-
また,dired bufferで,C-t C-tと叩けば(M-x image-dired-dired-toggle-marked-thumbs),下図のように,dired bufferの画像ファイル名の横にサムネールを表示させることもできる.
image-diredから一発で外部アプリで画像を開く方法
MacのFinderで画像を選択しダブルクリックするとPreviewで画像が開かれる.これはこれで良いのだが,例えばGIMPで加工したいときは,右クリックして「このアプリケーションで開く」からGIMP.appを選択しないといけない.これが結構面倒なのである.一方,image-diredを使えば,C-<RET> 一発でGIMPで開くことができる.以下はその設定である.
-
M-x customize としてカスタマイズ画面を呼び出し,下図のように検索ボックスに “external view” と打つ.
-
すると下図のように,“Image Dired External Viewer” が表示されるので,“Value Menu” の String: に /Application/GIMP.app/Contents/MacOS/gimp とフルパスを打つ.これはgimpの場合の設定であるが,外部アプリによって適宜修正する.これを保存して適用する.
-
これで,image-diredのサムネールが選択されているとき,C -<RET> と打てば直接GIMPで開かれるようになる.非常に便利である.ただし,通常のdiredのバッファで C-<Ret> と打っても,“C-<return> is undefined” と怒られるだけである.
これで画像の管理や操作もEmacsでやりやすくなった.