首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在代码块中设置单一字体?

如何在代码块中设置单一字体?
EN

Stack Overflow用户
提问于 2017-02-11 12:12:03
回答 2查看 1.2K关注 0票数 0

我的标准字体是比例字体。当我编辑标记文件时,我希望所有由4个或更多空格缩进的部分都显示在一个单一空间的字体中。

我不使用任何特殊的标记模式。因此,如果必须为当前缓冲区手动打开该行为,我就可以了。当然,我自己的*.md-files模式是需要的,但是我不知道如何做到这一点(如果这个问题超出了我的范围)。

对我来说,活跃的模式是:

代码语言:javascript
复制
Enabled minor modes: Abbrev Auto-Composition
    Auto-Compression Auto-Encryption Blink-Cursor 
    Column-Highlight Column-Number Desktop-Save File-Name-Shadow
    Flyspell Font-Lock Global-Font-Lock Icomplete Line-Number
    Menu-Bar Mouse-Wheel Shell-Dirtrack Show-Paren
    Tooltip Transient-Mark
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-11 15:28:48

是的,您确实需要一个高亮标记代码的模式。(试试M-x package-install RET markdown-mode+ RET)如果启用了字体锁定(我怀疑您已经启用),那么您最终得到的模式可能会给出标记的语法高亮显示。

现在,语法突出显示只是对所使用的字体和颜色的更改。一旦打开它,就可以通过导航代码块并发出M-x customize-face来自定义用于代码的字体。我的标记模式在markdown-pre-face下有代码块;默认情况下,光标下的面板将被选中。

我准备了一些截图来显示工作流。确定emacs允许的字体家族或铸造是一种黑暗的魔力,我把它留给谷歌去寻找更多的信息。在linux系统上,曾经有一个名为xfontsel的丑陋的小助手,您可以在这里预览不同的字体系列和铸造厂。

您可以先尝试而不保存任何东西,方法是应用更改而不保存;当事情看起来很好时,您可以在自定义模式下“应用并保存”。

票数 3
EN

Stack Overflow用户

发布于 2017-02-12 21:23:20

我将部分地不同意关于你可以做你想做的事情的论点。你只能做一部分你想要做的事,这是个小问题。

基本上,您可以为不同的面孔设置不同的字体。因此,如果要在固定宽度字体中显示的文本具有不同的脸定义,则可以将字体从比例字体更改为固定宽度字体。至少,这就是理论。

不幸的是,结果往往比你希望的要少。

问题是,大多数模式没有为所有可能的字符定义脸。脸往往只用于使某物突出,这往往意味着在模式下是特别的东西-一个标题,一点语法等等。

问题是没有默认脸--当没有指定其他脸时使用的脸。默认面不是特定于模式的。如果您将默认面设置为单空格字体,则该字体将用于所有模式,而不仅仅是标记模式中的“普通”字符。如果您在标记模式下的任何字体是成比例的,您将发现缩进中的对齐将看起来不一致。根据缓冲区内容的结构,这可能是问题,也可能不是问题。

就我个人而言,我很久以前就放弃了使用成比例字体作为emacs下的默认字体,而是决定使用固定宽度的字体作为默认字体,然后为一些特定的目的定义比例字体,比如org模式的头。

有些你可以尝试的东西,可能会起作用

  • 文件局部变量,以设置字体仅在标记文件。我还没有尝试过这种方法,但是您可能可以使用文件局部变量。您可能希望创建一个减价模板,在新的减价文件中设置此模板。
  • 将face变量设置为本地缓冲区。您可能可以定义一个标记模式钩子函数,它使face变量具有局部性,并将其设置为固定宽度的字体。

faces定义可以使用继承,因此理论上,如果所有使用的faces继承自默认faces,并且您执行文件局部变量或缓冲区局部变量来设置默认faces,那么所有其他faces都应该继承该定义,因此您不应该对缓冲区中的每个字体都这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42175709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档