Skip to content

Instantly share code, notes, and snippets.

@kobapan
Last active January 19, 2018 08:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kobapan/28908b564b610bd3e6f3fae78637ac8b to your computer and use it in GitHub Desktop.
Save kobapan/28908b564b610bd3e6f3fae78637ac8b to your computer and use it in GitHub Desktop.
emacsのdiredでsxivを呼び出して、ディレクトリ内の全画像を表示する。
(defun call-sxiv ()
(interactive)
(let ((image-files;画像ファイル名のリスト
(delq nil;この辺はemacs26辺りで filterマクロに置き換えか?
(mapcar
(lambda (f)
(when (string-match
"\.\\(jpe?g\\|png\\|gif\\|bmp\\)$"
f )
f ))
(directory-files default-directory) ))));現在のディレクトリ内のファイル名のリスト in alphabetical order
(start-process-shell-command;シェルコマンドを非同期実行
"sxiv"
nil ;プロセス用のバッファを開かない
(format "sxiv -f -n %s %s"
(length image-files);画像ファイルの個数=最後の画像ファイル
(mapconcat 'identity image-files " ") ))));リストを空白区切りで連結
(global-set-key (kbd "s-i") 'call-sxiv);Super+iで呼び出し
@kobapan
Copy link
Author

kobapan commented Jan 17, 2018

実は画像の一覧を見るって、FlickrにあげるためにカメラのSDカードを繋いだとき。その場合、SDカード内の最新のファイルが表示されて欲しい。となると、ファイル名がアルファベット順で最後になる画像を最初に表示しておいて、背後にサムネイルモードで全画像が準備されてるっていうのが、正しい。ということで、emacsのdiredでsxivを呼び出して、ディレクトリ内の全画像を表示するための emacs lisp を書いた。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment