我使用的是 Ubuntu 12.10,它有 4 个工作区。
由于不可能(或者可以?)让 Emacs 占用两个工作区以便我可以同时修改多个文件(超过 2 个),所以我想打开两个 Emacs 并将它们放在不同的工作区中。
有什么办法吗?当我单击 Emacs 图标时,它只会打开一次 Emacs。如果我在 shell 中运行它,shell 将不可用,所以我也无法打开新的 Emacs。
谢谢。
答案1
我认为 Ubuntu(嗯,我假设您实际上是在谈论 Unity?)将提供在多个工作区中显示同一个应用程序窗口的功能;但如果做不到这一点,只需打开额外的 Emacs 框架并将C-x52它们放在您想要的位置。
答案2
因此,关于的另一个答案C-x 5 2非常好,但它在同一个 emacs 进程下运行所有打开的窗口。如果您开始使用任何执行阻塞 I/O 的 emacs 模式(如 gnus),这可能会成为问题。将发生的是,当 gnus 等待下载邮件时,所有 emacs 都将变得无响应。如果发生这种情况,您可能需要为每个打开的窗口运行一个单独的 emacs 进程。这将使用更多的 RAM,但好处是,一个窗口中的 gnus 不会干扰其他打开的窗口的响应能力。
为了启动新的 emacs 进程,您可以键入Alt+F2以打开 Unity 的“运行命令”提示符,然后emacs
在那里键入。这样做的好处是不会留下被 emacs 阻止而无法执行任何操作的终端窗口,因为 Unity 会直接启动新的 emacs。
答案3
虽然上面的答案很令人满意,但我认为问题实际上是,虽然右键单击 Unity 中的 gnome-terminal 图标会显示一个名为“新终端”的菜单选项,该选项允许生成更多终端,但在 Unity 上右键单击“Emacs”图标时不会发生同样的情况。要让 emacs 也允许这一点,需要以超级用户身份编辑文件 /usr/share/applications/emacs23.desktop 并添加以下几行。
[Desktop Action New]
Name=New GNU Emacs 23
Exec=/usr/bin/emacs23 %F
TryExec=emacs23
OnlyShowIn=Unity
然后重新启动机器,确保更改生效。