How to let Org-mode open a link like [[file://file.org]] in current window instead of default in other window?

妖精的绣舞 提交于 2019-12-04 13:31:20

问题


I hope to use [C-c C-o] to open a link like [[file://filename.org|filename]] in current window, instead of the default in other window.

How to change this Org-mode default behavior ?

Seems default [C-u C-c C-o] is force open link in other window.

And there is a similar question at here: How do I keep Emacs org-mode from splitting windows?


回答1:


You need to change the value of org-link-frame-setup. Default value contains the cons (file . find-file-other-window). You may replace it by (file . find-file).




回答2:


Here is the solution I wrote, inspired by the answer of @juanleon. It maps C-c C-o to open the link in the current window, but leaves the default behaviour for C-u C-c C-o (open in other window). It does so without breaking the universal argument function (which happens for me when I naively remap C-u C-c C-o).

(defun org-force-open-current-window ()
  (interactive)
  (let ((org-link-frame-setup (quote
                               ((vm . vm-visit-folder)
                                (vm-imap . vm-visit-imap-folder)
                                (gnus . gnus)
                                (file . find-file)
                                (wl . wl)))
                              ))
    (org-open-at-point)))
;; Depending on universal argument try opening link
(defun org-open-maybe (&optional arg)
  (interactive "P")
  (if arg
      (org-open-at-point)
    (org-force-open-current-window)
    )
  )
;; Redefine file opening without clobbering universal argumnet
(define-key org-mode-map "\C-c\C-o" 'org-open-maybe)


来源:https://stackoverflow.com/questions/17590784/how-to-let-org-mode-open-a-link-like-file-file-org-in-current-window-inste

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!