10

一件用emacs困扰我的小事

在缓冲区中打开外壳时,我会:

M-x shell

到现在为止还挺好

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

C-u M-x shell

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

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

编辑

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

我认为当我这样做时会在下一个C-u M-x shell窗口中打开新的 shell 缓冲区,即如果你点击. 我希望它在同一个窗口中打开C-x o

4

2 回答 2

3

Emacs在专用缓冲​​区中运行交互式 shell 。它不能在 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(因为在or*Shell*中有匹配项)控制。设置为(或类似的),你应该是金色的。special-display-buffer-namesspecial-display-regexpsspecial-display-functiondisplay-buffer-same-window

但是,最终的解决方案是将 Emacs 升级到 v24;由于您使用的是 linux 系统,因此应该很简单。

于 2013-10-31T15:30:28.123 回答
0

您可以使用以下代码强制“*shell*”缓冲区显示在同一窗口中。

 (add-to-list 'display-buffer-alist
     '("^\\*shell\\*" . (display-buffer-same-window . nil)))
于 2021-12-30T01:39:13.670 回答