Emacs在当前窗口中打开另一个shell

时间:2013-10-31 12:51:00

标签: shell emacs

使用emacs一直困扰我的一件小事

在缓冲区中打开shell时,我会这样做:

M-x shell

到目前为止一切顺利

但是如果我想打开另一个shell,我会切换到另一个缓冲区并且:

C-u M-x shell

但是这总是会在另一个窗口中打开 - 不是我目前所在的那个

这很烦人有人知道如何解决它吗?

修改

我应该补充一点,我在多个拆分窗口中打开了多个缓冲区,例如:我的框架分为3个部分 - 我想要的是在当前具有焦点的同一部分中打开的新外壳,即我输入的那个而不是备用的

我认为当我执行C-u M-x shell时会发生的情况是新的shell缓冲区在 next 窗口中打开,即如果你点击C-x o,你将转移到该窗口。我希望它在相同的窗口中打开

1 个答案:

答案 0 :(得分:3)

Emacs在专用缓冲​​区中运行interactive shells。它不能在TeX缓冲区中运行shell。

M-x shell 创建一个新shell,如果还没有,并且 C-u M-x shell 会询问您是否有新缓冲区的名称。您还可以重命名shell缓冲区以方便多个shell,请参阅上面的链接。

编辑:使用pop-to-buffer-same-window(在Emacs24中)显示新的shell缓冲区。 您最好的选择是将*Shell*添加到display-buffer-alist - 但这里没有必要。

在Emacs23中,*Shell*缓冲区的显示由special-display-function控制(因为*Shell*special-display-buffer-namesspecial-display-regexps中匹配。将special-display-function设置为display-buffer-same-window(或类似的东西),您应该是金色的。

然而,最终的解决方案是将Emacs升级到v24;既然你在Linux系统上,它应该是直截了当的。