如何在代码块中设置单行字体?
How to set a monopaced font in code-blocks?
我的标准字体是比例字体。当我编辑降价文件时,我希望所有缩进 4 个或更多空格的部分都以等宽字体显示。
我没有使用任何特殊的降价模式。因此,如果我必须为当前缓冲区手动打开该行为,我会没事的。虽然,当然需要我自己的 *.md
-files 模式,但我不知道该怎么做(如果这个问题超出了范围)。
对我有效的模式是:
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
是的,您确实需要一种突出显示降价代码的模式。 (尝试 M-x package-install RET markdown-mode+ RET
)如果你启用了 font-locking(我怀疑你启用了),你最终的模式可能会为 markdown 提供语法高亮显示。
现在,语法高亮只是对所用字体和颜色的改变。启用它后,您可以通过在代码块上导航并发出 M-x customize-face
来自定义用于代码的字体。我的降价模式在 markdown-pre-face
下有代码块;默认情况下会为您选择光标下的面孔。
我准备了一些屏幕截图来展示工作流程。确定 emacs 允许什么字体系列或铸造厂有点黑魔法,我把它留给 google 来了解更多信息。在 linux 系统上曾经有一个名为 xfontsel
的丑陋小帮手,您可以在其中预览不同的字体系列和铸造厂。
您可以在不保存任何内容的情况下进行实验,方法是在不保存的情况下应用更改;当一切正常时,您可以 "apply and save" 在自定义模式下。
我将部分不同意你可以做你想做的事的论点。你只能部分地做你想做的事,这有点 hack。
基本上,你可以为不同的脸设置不同的字体。因此,如果要以固定宽度字体显示的文本具有不同的字体定义,则可以将字体从比例字体更改为固定宽度字体。至少,理论上是这样。
不幸的是,结果往往不如您希望的那样。
问题是大多数模式都没有为所有可能的角色定义面孔。面孔往往只用于使某些东西脱颖而出,这往往意味着模式中的一些特殊内容 - 标题,一些语法等。
问题出在“默认面孔”- 未指定其他面孔时使用的面孔。默认面不是特定于模式的。如果将默认字体设置为等宽字体,则该字体将在所有模式下使用,而不仅仅是降价模式下的 'plain' 个字符。如果您在降价模式下的任何字体是成比例的,您会发现缩进对齐看起来不一致。根据您构建缓冲区内容的方式,这可能是也可能不是问题。
就我个人而言,我很久以前就放弃了在 emacs 下使用比例字体作为默认字体,而是选择使用固定宽度的字体作为默认字体,然后为某些特殊目的定义比例字体,例如org-mode headers。
您可以尝试的一些 可能 有效的方法是
仅在降价过滤器中设置字体的文件局部变量。我没有试过这个,但你可以使用文件局部变量。您可能想要创建一个降价模板,在新的降价过滤器中进行设置。
将面部变量缓冲区设置为本地。您也许可以定义一个 markdown-mode 挂钩函数,它使面部变量成为本地缓冲区并将它们设置为固定宽度的字体。
人脸定义可以使用继承,所以理论上,如果所有使用的人脸都继承自默认人脸,并且你做一个文件局部变量或缓冲区局部变量来设置默认人脸,那么所有其他人脸应该 继承该定义,因此您不必为缓冲区中的每种字体都这样做。
我的标准字体是比例字体。当我编辑降价文件时,我希望所有缩进 4 个或更多空格的部分都以等宽字体显示。
我没有使用任何特殊的降价模式。因此,如果我必须为当前缓冲区手动打开该行为,我会没事的。虽然,当然需要我自己的 *.md
-files 模式,但我不知道该怎么做(如果这个问题超出了范围)。
对我有效的模式是:
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
是的,您确实需要一种突出显示降价代码的模式。 (尝试 M-x package-install RET markdown-mode+ RET
)如果你启用了 font-locking(我怀疑你启用了),你最终的模式可能会为 markdown 提供语法高亮显示。
现在,语法高亮只是对所用字体和颜色的改变。启用它后,您可以通过在代码块上导航并发出 M-x customize-face
来自定义用于代码的字体。我的降价模式在 markdown-pre-face
下有代码块;默认情况下会为您选择光标下的面孔。
我准备了一些屏幕截图来展示工作流程。确定 emacs 允许什么字体系列或铸造厂有点黑魔法,我把它留给 google 来了解更多信息。在 linux 系统上曾经有一个名为 xfontsel
的丑陋小帮手,您可以在其中预览不同的字体系列和铸造厂。
您可以在不保存任何内容的情况下进行实验,方法是在不保存的情况下应用更改;当一切正常时,您可以 "apply and save" 在自定义模式下。
我将部分不同意你可以做你想做的事的论点。你只能部分地做你想做的事,这有点 hack。
基本上,你可以为不同的脸设置不同的字体。因此,如果要以固定宽度字体显示的文本具有不同的字体定义,则可以将字体从比例字体更改为固定宽度字体。至少,理论上是这样。
不幸的是,结果往往不如您希望的那样。
问题是大多数模式都没有为所有可能的角色定义面孔。面孔往往只用于使某些东西脱颖而出,这往往意味着模式中的一些特殊内容 - 标题,一些语法等。
问题出在“默认面孔”- 未指定其他面孔时使用的面孔。默认面不是特定于模式的。如果将默认字体设置为等宽字体,则该字体将在所有模式下使用,而不仅仅是降价模式下的 'plain' 个字符。如果您在降价模式下的任何字体是成比例的,您会发现缩进对齐看起来不一致。根据您构建缓冲区内容的方式,这可能是也可能不是问题。
就我个人而言,我很久以前就放弃了在 emacs 下使用比例字体作为默认字体,而是选择使用固定宽度的字体作为默认字体,然后为某些特殊目的定义比例字体,例如org-mode headers。
您可以尝试的一些 可能 有效的方法是
仅在降价过滤器中设置字体的文件局部变量。我没有试过这个,但你可以使用文件局部变量。您可能想要创建一个降价模板,在新的降价过滤器中进行设置。
将面部变量缓冲区设置为本地。您也许可以定义一个 markdown-mode 挂钩函数,它使面部变量成为本地缓冲区并将它们设置为固定宽度的字体。
人脸定义可以使用继承,所以理论上,如果所有使用的人脸都继承自默认人脸,并且你做一个文件局部变量或缓冲区局部变量来设置默认人脸,那么所有其他人脸应该 继承该定义,因此您不必为缓冲区中的每种字体都这样做。