「GNU Emacs」- 常用界面设置

  CREATED BY JENKINSBOT

问题描述

该笔记将记录:在 GNU Emacs 中,那些 常用的整体的较小的 界面设置,或者某些交互方式。比如,修改全局字体、关闭 Tooltip 功能、设置 yes-or-no 为 y-or-n 模式等等。

该笔记的子章节将记录:在 GNU Emacs 中,与界面相关的设置,包括 Frame、Window、Mode Line 等等方面的设置。

字体设置(Font configuration)

修改全局字体(默认字体):
1)M-x customize-face [RET] default
2)修改 Font Family: 字段

设置备用字体(如果 A 字体没有字符,则到 B 字体中查找):
1)M-x customize-variable [RET] face-font-family-alternatives
2)已存在默认设置,如说明中的介绍,如果 FAMILY 没有找到,将使用 ALTERNATIVE1 ALTERNATIVE2 依此类推。

修改代码注释颜色:
1)M-x customize-face [RET] font-lock-comment-face [RET],
2)orange red (#ff4500) Bold(代码是写给机器看的,注释才是写给人看的,我们需要稍微突出显示注释)

弹窗提示

在某些操作中,会弹窗提示用户进行选择,而我们希望可以直接在 Echo Area 中显示,并通过键盘操作完成,而不是鼠标点击操作,以提高效率(其实也没有提升多少)。

为解决该问题,在初始化脚本(比如 ~/.emacs 文件)中,加入如下配置即可:

(setq use-dialog-box nil) ; 禁止显示那些“需要鼠标点击的”弹窗,改为使用 y/n 按键操作

或者,使用 Customize 设置:M-x customize-variable [RET] use-dialog-box

关闭 Tooltip 功能

该功能(Tooltip)很常见,比如,在应用中,将鼠标浮动到图标按钮上,将显示小的窗口,以提示按钮名称、功能、描述等等。在 GNU Emacs 中,开启 Tooltip 功能,当鼠标浮动到按钮上时,可以显示按钮功能、左右鼠标键对应的功能、显示到 Each Area 区域中等等。

但是,我们不需要该功能(有各种原因),在初始化脚本(比如 ~/.emacs 文件)中,加入如下配置即可:

(setq x-gtk-use-system-tooltips nil) ; 关闭 tooltip 功能
(tooltip-mode -1) ; 阅读手册(C-h f tooltip)获取设置方法

或者,使用 Customize 设置:
1)M-x customize-variable [RET] tooltip-mode
2)M-x customize-variable [RET] x-gtk-use-system-tooltips

关闭自动换行(Line Wraping)

在现代编辑器中,当行过长(比如超出屏幕),超出部分将自动换行显示。但是,我们希望不要自动换行,而是直接水平显示。

通过如下方式,来切换自动换行:M-x toggle-truncate-lines

或者,修改变量,使其永久有效:M-x customize-variable [RET] truncate-lines (设置 Truncate Lines: 为 on 即可)

修改 TAB 宽度

使用 C-h v tab-width [RET] 查看当前 TAB 显示宽度。

默认 TAB 使用 8 字符宽度,对于我们来说,该宽度较大,使用 4 字符宽度已经足够。

使用 Customize 设置:M-x customize-variable [RET] tab-width

参考文献

customize – Turning off tooltip does not work – Emacs Stack Exchange
39.25 Tooltips
21.19 Tooltips
gui emacs – Disable all GUI popups and tooltips – Emacs Stack Exchange
How to set the font size in Emacs? – Stack Overflow
display – How do I set up font fallback in a robust way? – Emacs Stack Exchange
How do you specify a fallback font in emacs? – Stack Overflow
How to turn off Emacs’s auto line wrapping for the current session? – Super User
5.30 How do I change Emacs’s idea of the TAB character’s length?
How to change the color of Emacs comments in C++/C mode to light pink – Stack Overflow