Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs 如何强制组织模式在另一个框架中打开链接?_Emacs_Org Mode - Fatal编程技术网

Emacs 如何强制组织模式在另一个框架中打开链接?

Emacs 如何强制组织模式在另一个框架中打开链接?,emacs,org-mode,Emacs,Org Mode,在组织模式下,可以有链接和顶部打开的链接。如在组织模式C-u C-C C-o或鼠标3中列出的,将强制链接在另一个窗口中打开。如何对帧执行相应操作,即如何强制链接在另一帧中打开 我想要的是C-C-o按照默认值工作,但C-u C-C-o强制链接在另一个帧中打开 (有关窗和框架的区别,请参见。) 我正在运行23.3.1中的组织模式7.6。查看变量组织链接框架设置(M-x自定义变量RET-Org链接框架设置)。文档字符串应该解释这种方法。我刚刚在一个非定制的emacs中测试了这一点: emacs -q

在组织模式下,可以有链接和顶部打开的链接。如在组织模式C-u C-C C-o或鼠标3中列出的,将强制链接在另一个窗口中打开。如何对帧执行相应操作,即如何强制链接在另一帧中打开

我想要的是C-C-o按照默认值工作,但C-u C-C-o强制链接在另一个帧中打开

(有关窗和框架的区别,请参见。)


我正在运行23.3.1中的组织模式7.6。

查看变量<代码>组织链接框架设置(
M-x自定义变量RET-Org链接框架设置
)。文档字符串应该解释这种方法。

我刚刚在一个非定制的emacs中测试了这一点:

emacs -q
GNU Emacs 24.0.92.1 (i386-mingw-nt5.1.2600) of 2011-11-30 on MARVIN
Org-mode version 7.7
在类似以下链接上运行
C-C-o
C-u C-C-o
时:

file:~/Dropbox/org/test.org::*Test
在这两种情况下,我都会打开一个新的框架
C-u C-u C-C C-o
在我的活动EmacClient会话中打开
test.org
文件。当将链接更改为
../org/test.txt
时,它仍然会在新的框架中打开,但是它无法创建新文件(我假设我没有正确关联.txt,这是可能的)

使用
[mailto:test@test.org][测试邮件]]
默认情况下也会生成新的帧


编辑:
org link frame setup
的值如下(它也是默认值,因为它来自
emacs-q
):

其值为((vm.vm访问文件夹其他帧)
(gnus.org gnus无新消息)
(文件。查找文件其他窗口)
(wl.wl其他框架)

我刚刚进行了测试,您可以将
org open at point
包装为一个
(let)
自定义函数,从而使其正常工作

在这种情况下,我只是在当前的
org链接框架设置
前面加上所需的
find file other frame
,以确保如果在其他链接类型上使用该命令,它不会失败

(defun zin/org打开其他框架()
“跳转到另一帧中的书签。有关详细信息,请参阅“书签跳转”。”
(互动)
(让((组织链接框架设置(acons“文件”查找文件其他框架组织链接框架设置)))
(组织开放点)))

我怀疑您需要将它绑定到一个键序列,而不是
C-u C-C-o
,除非Emacs允许您专门将它绑定到该序列。

如果我将
org link frame setup
文件
位设置为
查找文件其他帧
,它总是(例如,如果我使用
C-C-o
C-u C-C-o
)在新帧中打开文件。这不是我想要的。我希望它仅在我强制时在新帧中打开链接(执行
C-u C-C-o
),否则我想要默认行为。嗯,我认为这是不可能的。作为某种快速解决方法,您可以为所讨论的文件类型自定义
org file apps
,然后输入类似
emacsclient-c%s
的内容作为app。这样,
c-c-o
将在新的框架中打开文件当
C-u C-C C-o
将按照
org link frame setup
中的定义打开它时(例如,在另一个窗口中)。不完全是你想要的,但可能已经足够近了吗?有没有可能换一种方式,使
C-C-o
按照
org link frame setup
中的定义打开,但是
C-u C-C-o
在一个新的框架中打开?如果其他一切都失败了,另一种方式会很有趣。查看代码,我怀疑没有这里有任何方法可以让
org链接框架设置在当前系统下按需要工作。在
org.el
函数
org open文件中
第9993行附近的某个地方,您可以得到
((或(stringp cmd)(eq cmd'emacs))
作为
的匹配项(cond…)
cmd'emacs
是通过
C-u C-C C-o
传递的值。这使用了
org链接框架设置中的自定义设置,就像
t
案例(
C-C-o
)。在您的设置中,变量
org link frame setup
的值是多少?我正在运行23.3.1中的org mode 7.6。奇怪的是,当变量设置为
查找文件其他窗口
,而不是
查找文件其他框架
,对于
文件
,您会在新框架中打开链接。在我看来,eit她说这是一个错误,或者你的窗口-框架区分错误。在我的设置中,变量具有相同的值。@N.N.我编辑了该值。它可能是在7.6和7.7之间更改的。我没有任何emacs23的安装来测试它,但可能是在emacs中发生的更改,而不是在org-mode.Oops中,我认为虽然我做对了(奇怪的是,在过去,当我的议程以我想要的方式打开时,我做对了),但得到了相反的结果。对此表示抱歉,忽略答案。这很好。是的,当我尝试绑定到该序列时,它抛出了一个错误。我使用了
C-C 5 C-o
。如果仍然需要原始序列,您将如何继续?劫持绑定到的函数
C-C-o
,并在使用通用参数调用时告诉它ument它应该做
zin/org open other frame
?如果您将它绑定到
C-c5 C-o
,它将为您提供
open other frame
功能,而不会对正常的
C-C-o
序列产生任何影响。您可以使用
defadvice
将通用参数映射到
zin/org open-其他框架
但我知道通用参数已经在函数中使用。保持
C-C-o
for
打开其他窗口
C-c5 C-o
for
打开其他框架
C-C-o
for
使用emacs打开
可能是最简单的方法。乔纳森,你的代码在我的emacs中不起作用(24.2.1),上面写着:符号的功能定义是无效的:acons,你知道