Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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_Window_Buffer - Fatal编程技术网

限制缓冲区在emacs上的特定窗口中弹出

限制缓冲区在emacs上的特定窗口中弹出,emacs,window,buffer,Emacs,Window,Buffer,如何将一些缓冲区重定向到特定窗口中的弹出窗口?例如,当您使用shell时,按,右侧窗口中将弹出一个*completions*缓冲区。。。但是我怎样才能使这个缓冲区总是在另一个窗口上弹出呢 我更喜欢不需要安装新库的解决方案(即使编写自己的elisp函数也很好) 我问这个问题是因为当我使用emacs时,我喜欢将它分成3个窗口: 左边的窗口是我编码的地方,我们称之为绘图窗口。右上角的窗口将弹出编译消息,我们称之为信息窗口。右下角的窗口是我使用shell的地方,我们称之为shell窗口。当我使用shel

如何将一些缓冲区重定向到特定窗口中的弹出窗口?例如,当您使用shell时,按
,右侧窗口中将弹出一个
*completions*
缓冲区。。。但是我怎样才能使这个缓冲区总是在另一个窗口上弹出呢

我更喜欢不需要安装新库的解决方案(即使编写自己的elisp函数也很好)

我问这个问题是因为当我使用emacs时,我喜欢将它分成3个窗口:

左边的窗口是我编码的地方,我们称之为绘图窗口。右上角的窗口将弹出编译消息,我们称之为信息窗口。右下角的窗口是我使用shell的地方,我们称之为shell窗口。当我使用shell窗口并按
查看完成建议时,
*完成*
缓冲区将在我的打印窗口而不是信息窗口中弹出


直到现在,当我进入绘图窗口时,我一直试着只按
q
,但这变得很烦人,因为它不会总是返回到我正在使用的代码,所以我必须在找到我的代码或C-x b(如果我能记得我正在编辑的文件名)之前保持右对齐.

我能想到的最简单的方法是将绘图窗口和外壳窗口专用于它们的缓冲区。如果您已经安装了emacs goodies,那么您可以为此使用M-x专用模式

如果打印窗口和外壳窗口是专用的,emacs只使用信息窗口弹出新的缓冲区

我自己使用添加到“缓冲区”菜单的菜单项:

(取消窗口专用切换()
“切换窗口是否专用于缓冲区。”
(互动)
(信息
(如果(窗口-专用-p)
(项目
(设置-窗口-专用-p零零)
“窗口不是专用的。”)
(项目
(set-window-DEVICED-p nil t)
“窗口专用。”))
(简易菜单添加项目nil'(“缓冲区”)[“切换专用窗口至缓冲区”窗口专用切换t])

需要修改生成特殊缓冲区(如补全)的函数,以使用显示缓冲区或其函数系列。切记,请参阅我刚才在此处评论的
赢家模式
:谢谢!专用模式成功了。。。我只是使用M-x专用模式将窗口固定到它的缓冲区,并使用M-x专用模式将其取消固定并在其中打开一个新文件。