Emacs小ネタ: ファイル名の上にポインタ動かしてC-c oするとファイル開いたりdiredに飛べるようにする
したいときってありますよね。
そういうときのために、設定を書いてみました。
(参考:Emacs, Mac OS X and Unix: EmacsのバッファやDiredでカーソル位置のファイル(URL)をFinder(ウェブブラウザ)で開く)
;; Open the file name being pointed in an other window or dired ;; reference: http://kouzuka.blogspot.com/2011/02/emacsurlfinder.html (defun my-directory-or-file-p (path) "return t if path is a directory, return nil if path is a file" (car (file-attributes path))) (defun my-open-emacs-at-point () "open the file with opening emacs" (interactive) (require 'ffap) (let ((file (or (ffap-url-at-point) (ffap-file-at-point)))) (unless (stringp file) (error"No file or URL found")) (when (file-exists-p (expand-file-name file)) (setq file (expand-file-name file))) (message "Open: %s" file) (if (my-directory-or-file-p file) (dired-other-window file) (find-file-other-window file)) )) (global-set-key (kbd "\C-c o") 'my-open-emacs-at-point) ;; double click (global-set-key [double-mouse-1] 'my-open-emacs-at-point) (global-set-key [double-down-mouse-1] 'ignore) ; mouse-drag-region
長いので、gistにも載せておきます。
Emacs: Open the file which filename is pointed in an other window or dired
補足
my-directory-or-file-p 関数は、ディレクトリだったらtを、ファイルだったらnilを返します。
(単純に file-attributes 関数の返すリストの要素1個目を返しているだけですが。)