我注意到一些在线终端窗口的屏幕截图,其中显示状态栏或突出显示线周围的细突出边缘。在以下示例中,请注意第 1、5 和 389 行周围的浅灰色边缘:
在此示例中,请注意 Emacs 模式线(状态栏)周围的黄色边缘:
此效果的名称是什么?在 OS X 10.10 下的 iTerm 2 上是否可以实现?
更新
在做了一些研究并深入研究 Emacs 之后定制界面主题代码,我找到了一些定义边缘的代码。用 Emacs 的说法,它被称为:box
,它的属性之一是line-width
。以下是在主题中定义框线的示例:
'(modeline ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed))))
可以在 Emacs 手册的文档:box
中找到面部属性文档,尽管它没有提及它是如何工作的,或者支持哪些终端。
我开始认为这可能是 Emacs GUI 版本的一个特殊功能(例如阿奎玛克斯,但我很确定我已经看到了似乎是 Ubuntu Unity 终端窗口的屏幕截图,具有类似的框突出显示。
答案1
您看到的效果不是终端窗口图形技巧,而是在 X 中运行的 gui emacs。您正确地识别了自定义以使 emacs 绘制该效果,但只有当 emacs 在 X 中运行时才会呈现这些效果。
为了说明这一点,我的模式系列主题是:
'(mode-line ((t (:background "gray10" :foreground "green" :box (:line-width -1 :style released-button)))))
当 emacs 以图形方式运行时(例如emacs
),它会呈现如下:
当 emacs 在终端(例如emacs -nw
)中运行时,它会呈现为:
您可以看到像素边框效果,这些效果给出了仅在 GUI 模式下渲染的框定义的凸起外观。在终端模式下,它只是一个平面效果。
同样,您发布的图片来自 gui emacs,效果不是任何终端仿真器的属性,也不涉及任何终端仿真器的渲染。
答案2
我的理解方式维基百科页面(尽管我非常希望在这个具体问题上被证明是错误的):
- 风格强调存在,不限于光标。他们称之为代码 4。
- 风格镶框存在,每个字符周围有 4 个边框,他们称之为代码 51。
注意:这不会启用无边框的字符串框架之间人物。就像第一个屏幕截图一样Lisa
。
所以,我的答案(截至 2015 年中期)仍然是:
(当前)终端模拟器无法按照您想要的方式显示字符周围可选的每边彩色边框。
像 gvim 和 xemacs 这样的 GUI 应用程序不基于终端仿真器,因此不受当前终端仿真器的限制。我认为,屏幕截图来自 GUI 应用程序。
再次,我希望在这一点上被证明是错误的,因为我很乐意将这种格式合并到我自己的点文件自定义中。