Org-modeのディレクトリへのリンクをDiredで開きたい


Org-modeのハイパーリンク便利ですね。 ファイルだのメールだのURLだのなんだのリンクはりまくれるので、整理したい時など C-c L ( org-store-link )しまくって まとめて整理したりしてます。

AdventCalendar – Org-modeのリンク機能で情報集約 – Qiita

この機能、だいたい満足してたのですが唯一イラッとするのがディレクトリのリンクを C-c C-o ( org-open-at-point ) して リンク先に飛ぶ時です。

なんと、Windowsだとリンク先がエクスプローラで開くのです。なぜDiredでないのか理解に苦しみます。あのいきなりEmacsから追放された時の悲しみを知らないとでも言うのでしょうか。

もう、こんな悲しみを味わいたくないのでDiredで開きたいと思います。

元ネタは、Org-modeのMLに投下された以下の記事。 open file link in dired?

(org-add-link-type "file+emacs+dired" 'org-open-file-with-emacs-dired)
(add-hook 'org-store-link-functions 'org-dired-store-link)

(defun org-open-file-with-emacs-dired (path)
  "Open in dired."
  (let ((d (file-name-directory path))
    (f (file-name-nondirectory path)))
    (dired d)
    (goto-char (point-min))
    (search-forward f nil t)))

(defun org-dired-store-link ()
  "Store link to files/directories from dired."
  (require 'dired-x)
  (when (eq major-mode 'dired-mode)
    (let* ((f (dired-filename-at-point))
           (link (concat "file+emacs+dired" ":" f))
           (desc (concat f " (dired)")))
      (org-add-link-props :link link :description desc)
      link)))

これで、またEmacsに引きこもれますね!!

  • kbkbkbkb1

    ディレクトリのリンクであれば C-u C-c C-o でdiredで開けるようです。ファイルのリンクだと無理ですが。

  • hal_ueda

    以下試してみてください。file: でdired になります。
    customでも設定できます。ポイントは(directoy.emacs)です。
    (setq org-file-apps
    ‘(
    (directory . emacs)
    (auto-mode . emacs)
    (“\.mm\'” . default)
    (“\.x?html?\'” . default)
    (“\.pdf\'” . default)
    ))