org使用超链接问题

为了使用方便,查了org手册,使用 [[][]] 做了一个导航索引org文件,但是使用过程中很不方便,因为只能用鼠标或者触摸屏点击链接才能够跳转,而且是自动在另一个buffer打开。

查了一下函数,org-mark-ring-pushorg-mark-ring-goto,我在链接处执行这两个命令都不能实现跳转到链接的位置,点击是正常的,相对链接地址没有问题。

我想请问三个问题

  1. 有没有办法实现用快捷键实现在链接处自动跳转打开所链接的文件

  2. 直接在当前org打开所链接的文件而不是另外新开一个buffer打开

  3. 在打开所链接的org文件里面绑定一个快捷键,可以返回到之前设置了链接的那个org文件

麻烦大家给我一些意见和建议,谢谢各位。

回复-问题2:[[file+sys:C:/myfile.txt][myfile.txt]]。文件路径前加file+sys可直接以系统默认的程序打开文件。

我使用的是debian9,而且我并不想用别的软件打开,那样会和当前的编辑习惯不一致,感谢您的建议

我抄的是 doom-emacs 里的 +org/dwim-at-point,绑定在 RET 键上,很方便。当然如果你用的是 emacs 原生 keybinding 的话,RET 键就没法换行了,得绑到别的键上才行。

感谢您的介绍,我试用看看

抄过来了,第一个问题已经解决,再次感谢您的推荐以及那位大神的开发

不过2和3没有解决,你 2 的意思是打开新文件时,自动删除原来的 buffer 吗,为啥要这么做。3 的话还是交给普通的 切换 buffer 的函数吧,没必要专门再设一个键。

第二个问题主要是我的平板电脑屏幕小,同时上下打开两个org,就很不方便编辑了,每个都半屏的样子,也不想每次都C-x 1

第三个问题还是为了方便,就好像浏览网页一样,因为个人习惯,编辑完当前org,然后返回索引列表,打开另一个去继续编辑,如果同时打开好几个文件,我个人会分散注意力

那你应该指的是在同一个 frame,而不是 buffer 吧。

(setq    org-link-frame-setup
   '(
     (vm . vm-visit-folder)
     (vm-imap . vm-visit-imap-folder)
     (gnus . gnus)
     (file . find-file)
     (wl . wl-frame)
     ))

比较简单的方法是绑一个键,功能就是回到上一个 buffer。

如果你一定要有个键只用来回到那个索引列表的话,估计要在打开文件的那个函数里多加几行,用来保存索引列表的 buffer 名,然后再绑定个其他键用来专门回到那个 buffer。(当然如果你只有一个索引列表,直接把那个键绑定成去那个索引列表就行)。

第二个问题的方案等一下就测试,是我的概念有问题,不是在同一个buffer,是同一个frame

第二个问题也解决

第三个我也同意你的观点,所以用一个全局按键绑定到索引文件了

不过又引申出来一个问题

请问在索引文件中,有没有类似函数实现单纯的在该文件的各个链接来回跳转

我怕描述不清楚,就说的更具体一点

Index.org:

  • xxxxx链接1
  • xxxxx链接2
  • xxxxx链接3

实现打开org之后,在链接1,链接2,链接3这三个位置来回跳转

补充,我自己想了一个简单的办法

在org模式绑定两个快捷键,分别对应forward-word,backward-word两个函数,打开索引文件之后先定位到当前链接行首,执行forward-word直接跳转到链接1,然后使用drim-at-point绑定的快捷键打开该链接文件这样基本上很方便,也满足我的使用要求了

因为只能选择一个作为解决方案,所以集中到这里

感谢Weiss朋友的大力帮忙和drim-at-point开发者

1 从链接处跳转到文件,使用drim-at-point 2 整屏打开新文件,建立如下代码

(setq org-link-frame-setup '( (vm . vm-visit-folder) (vm-imap . vm-visit-imap-folder) (gnus . gnus) (file . find-file) (wl . wl-frame) ))

再次感谢

没有很懂,你是怎么做到用 forward-word 在链接之间跳转的。

具体是这样,index.org结构如下

  • org使用手册(链接1)
  • emacs使用手册(链接2)
  • 中医医案(链接3)

当我打开索引文件,按j到链接1行首,按b执行forward-word,就直接跳到链接1,再按t执行drim-at-point,就整屏打开链接1的文件

当光标位于链接1,再按b跳转到行尾,再按就直接跳转到链接2

没有一点技术含量,也是由于index.org的这种简单布局才可以这样用

说得不好,献丑了,我不懂编程,只能想这样的办法

org-open-at-point 好像可以。