将模式行和迷你缓冲区移到顶部


12

有什么方法可以将模式行和迷你缓冲区从屏幕的底部移到顶部?

上一个问题涵盖了迷你缓冲区。如何在emacs帧的中间显示迷你缓冲区的内容?,所以这个问题主要是关于模式行。

我刚放下笔记本电脑并弄碎了屏幕,因此在底行看不到太多东西。


“状态栏”是指模式行还是小型缓冲区?
马拉巴巴2014年


@Malabarba对不起,我没有100%掌握emacs术语。我是说 我在屏幕底部看不到太多内容。
庞格(Mongus Pong)2014年

Answers:


18

的内容mode-line存储在变量中mode-line-formatEmacs还支持标题行,其内容由变量控制header-line-format

原则上您可以使用

(setq header-line-format mode-line-format)
(setq-default mode-line-format nil)

以使的格式header-line等于您当前模式行的格式,然后删除mode-line

编辑:如果要永久使用此设置

(setq-default header-line-format mode-line-format)

在您的init文件中(感谢nispio的建议)。

由于您还希望将minibuffer其显示在顶部,因此我将重新链接@Malabarba对问题的答案,即如何在emacs框架的中间显示minibuffer的内容?可以调整为在顶部显示迷你缓冲区。另外,考虑@phils对问题的回答是否可以将emacs迷你缓冲区移到屏幕顶部?在stackoverflow 的“旧” emacs标签上。

据我所知,没有办法直接将迷你缓冲区放在顶部。唯一的方法(上述答案也使用了该方法)是使用第二帧。


4
如果要将其添加到init文件中,则需要使用setq-default而不是setq
nispio 2014年

我可以问一下拒绝投票的原因吗?
elemakil 2014年

@elemakil如果没有setq-default,答案是错误的。现在是正确的。:-)
马拉巴巴2014年

(尽管从技术上讲,有关用户提供的新细节现在还不完整)
Malabarba 2014年

@Malabarba,我明白了。感谢您清理!:-)
elemakil 2014年

4

您真正的问题是如何使Emacs避免屏幕的有缺陷部分。模式行和微型缓冲区只是最终导致无法读取的内容。

与其移动并在不可读的屏幕部分中留下其他内容(如文本),更干净,更通用的解决方案是缩小并移动Emacs 框架(即通常称为窗口),以使其完全包含在屏幕的适当区域中。屏幕。

与Emacs一样,有一些特定的工具。Maxframe库(Github主页)旨在自动用Emacs框架填充整个屏幕,与您所需要的相反,但是它提供了一个有用的mf-set-frame-pixel-size函数,可以从init文件中调用该set-frame-position函数以及标准函数来放置您的当您打开Emacs时,会自动将相框固定在正确的位置。


1
我支持你的观点。但是没有必要破解软件包。参见default-frame-alist
马拉巴巴

@Malabarba关于doc.endlessparentheses.com,在无关的注释上,为什么仅将第二个正斜杠转换为ASCII代码?范例:http://doc.endlessparentheses.com/Var%2F2C-window-width.html点击2C-window-width 这里,我得到
2014年

@kaushalmodi只是索引生成方式的一个小错误。您可以在链接上使用常规斜杠,它们会正常工作。我已经在本地修复它,但是重新生成索引需要几个小时,所以我将其推迟到emacs25。:-)
Malabarba 2014年

1
@Malabarba:mf-set-frame-pixel-size很有用,因为设置帧高度和宽度的常用方式是按字符而不是按像素,这在这种情况下不是很实际。default-frame-alist及其亲属也以字符为单位。
洛伦佐·加蒂
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.