Emacs 浮动在帧上的窗口和微型缓冲区

Emacs 浮动在帧上的窗口和微型缓冲区,emacs,Emacs,当我启动Emacs时,它的窗口和迷你缓冲区会浮在主框架上,留下大量的空白空间(请参阅:和)。知道发生了什么事以及如何解决吗 我在Xmonad上使用emacs版本23.1.1 谢谢 在shell模式下执行选项卡展开时,我偶尔会遇到同样的情况。我不会以一个空的迷你buf结束,它通常包含来自shell的所有内容。到目前为止,我找到的唯一解决方案是杀死当前的shell缓冲区在shell模式下执行选项卡展开时,我偶尔会遇到同样的情况。我不会以一个空的迷你buf结束,它通常包含来自shell的所有内容。到目

当我启动Emacs时,它的窗口和迷你缓冲区会浮在主框架上,留下大量的空白空间(请参阅:和)。知道发生了什么事以及如何解决吗

我在Xmonad上使用emacs版本23.1.1


谢谢

在shell模式下执行选项卡展开时,我偶尔会遇到同样的情况。我不会以一个空的迷你buf结束,它通常包含来自shell的所有内容。到目前为止,我找到的唯一解决方案是杀死当前的shell缓冲区

在shell模式下执行选项卡展开时,我偶尔会遇到同样的情况。我不会以一个空的迷你buf结束,它通常包含来自shell的所有内容。到目前为止,我找到的唯一解决方案是杀死当前的shell缓冲区

您可以尝试
C-l
(recenter top-bottom)。多年来,我一直将其作为一种非常可靠的“重新粉刷”操作来使用,它可以清除框架上出现的各种碎屑。当您没有窗口系统时,它更有用。

您可以尝试
C-l
(上下居中)。多年来,我一直将其作为一种非常可靠的“重新粉刷”操作来使用,它可以清除框架上出现的各种碎屑。当您没有窗口系统时,它甚至更有用。

这部分工作正常(取自:

(全屏() (互动) (全屏设置帧参数nil (如果(帧参数nil'全屏)nil'全屏) (全屏添加挂钩“emacs启动挂钩”) 窗口,尽管小缓冲区仍然更大。

这部分起作用(取自):

(全屏() (互动) (全屏设置帧参数nil (如果(帧参数nil'全屏)nil'全屏) (全屏添加挂钩“emacs启动挂钩”)
窗口,尽管小缓冲区仍然更大。

它看起来像是Emacs和窗口管理器之间的奇怪交互。这就好像Emacs正在将自己配置为在其活动窗口中具有一定数量的行和列,但是窗口管理器分配给它的帧更大

您可以尝试在不使用Xmonad的情况下运行X(即只运行startX),然后运行Emacs吗?您不会得到框架装饰,但您仍然可以使用xterm启动它,并查看分配给它的“自然”大小。对于相同的Emacs配置,这将缩小到Xmonad的一些问题

从屏幕截图上看这并不明显,因为其中一个肯定处于GUI模式,但另一个(黑色上的绿色)看起来似乎处于文本模式。如果强制它在文本模式下运行(
emacs-nw
),它会占用相同的大小吗?在shell中,普通命令是否占用分配窗口的整个大小

shell变量
设置是否正确?它们与窗户尺寸匹配吗?假设您正在运行
bash
shopt checkwinsize
是否已打开?常规命令,如
ls
是否在预期的边距处换行并滚动以使用整个窗口


在GUI模式开始工作之前,确保正确配置文本模式是值得的。我有一种预感,如果Xmonad“强迫”窗口按某些安排平铺,并且没有发送正确的X提示,那么Xmonad管理窗口大小的方式可能是罪魁祸首。但是-这只是目前的假设…

看起来Emacs和您的窗口管理器之间有一种奇怪的交互。这就好像Emacs正在将自己配置为在其活动窗口中具有一定数量的行和列,但是窗口管理器分配给它的帧更大

您可以尝试在不使用Xmonad的情况下运行X(即只运行startX),然后运行Emacs吗?您不会得到框架装饰,但您仍然可以使用xterm启动它,并查看分配给它的“自然”大小。对于相同的Emacs配置,这将缩小到Xmonad的一些问题

从屏幕截图上看这并不明显,因为其中一个肯定处于GUI模式,但另一个(黑色上的绿色)看起来似乎处于文本模式。如果强制它在文本模式下运行(
emacs-nw
),它会占用相同的大小吗?在shell中,普通命令是否占用分配窗口的整个大小

shell变量
设置是否正确?它们与窗户尺寸匹配吗?假设您正在运行
bash
shopt checkwinsize
是否已打开?常规命令,如
ls
是否在预期的边距处换行并滚动以使用整个窗口


在GUI模式开始工作之前,确保正确配置文本模式是值得的。我有一种预感,如果Xmonad“强迫”窗口按某些安排平铺,并且没有发送正确的X提示,那么Xmonad管理窗口大小的方式可能是罪魁祸首。但是-这只是目前的假设…

对我来说,听起来像个bug。考虑报告:<代码> M X报告Emacs Bug < /代码>。试着从
emacs-Q

开始提供一个菜谱,对我来说听起来像个bug。考虑报告:<代码> M X报告Emacs Bug < /代码>。试着从
emacs-Q

开始提供一个菜谱,谢谢你的回答,但是这个命令没有改变任何事情。给你一个好答案的部分困难在于你的场景很难重现。我不知道您是否可以添加任何见解,使我们能够重新创建您的环境,但这将是有益的。我所能做的是键入“C-x(消息…”),其中…是一系列引述的新行,它们扩大了微缓冲区。当我还在微缓冲区中时,我键入“C-x o”返回主窗口。果然“C-l”对我没有任何帮助。然后我键入“C-x o”返回微缓冲区并键入“C-g”这恢复了屏幕。您可以尝试一下。谢谢您的回答,但命令不起作用 (defun fullscreen () (interactive) (set-frame-parameter nil 'fullscreen (if (frame-parameter nil 'fullscreen) nil 'fullboth))) (add-hook 'emacs-startup-hook 'fullscreen)