Questions tagged «font-lock»

字体锁定模式是次要模式,始终位于特定缓冲区本地,该模式将面孔分配给缓冲区中的文本。

7
如何在第80列获得标尺?
作为程序员,我想在特定的列(通常为80)上看到一个标尺,既可以看到跨过该列的时间,又可以看到距它有多近,因此可以尽早重新格式化代码。 到目前为止,我发现的所有选项都无法实现此目标: whitespace-mode,column-enforce-mode并且column-marker仅突出显示行中的文本已通过后的各个行fill-column。我想看看何时我靠近柱子,而不仅仅是经过柱子时。 fill-column-indicator将是一个很好的解决方案,但它打破了auto-complete-mode,company-mode,avy,等等。这些似乎很难解决,每个都需要一个单独的解决方法的问题-例如,看到的company-mode问题以及该auto-complete-mode问题,后者超过两年)。 有更好的选择吗?

2
如何在emacs中使用Markdown的SE风格?
我想在emacs中使用markdown的SE风格。默认的Markdown模式具有一些功能(反引号和缩进标记代码,#创建标头以及>更改字体),但我也想拥有: * 制作包括缩进在内的列表项。 [foo](http://example.com)显示为foo并http://example.com在单击时打开浏览器。 理想情况下,我希望在我的emacs中将其显示为Markdown。例如,如果我要写: ## Header * item 1 * item 2 while true; do echo foo; done End of list and more code while true; do echo bar; done See [here](http://example.com) for details 我希望在emacs本身中将其呈现为: 标头 项目1 项目2 while true; do echo foo; done 列表结尾和更多代码 while true; do echo …

1
使组织模式标记符号不可见?
在Emacs中,可以使用星号*来实现粗体,例如,* 粗体 *。我的问题是我可以使星号不可见吗?即以粗体代替* 粗体 *。删除线,斜体等相同的问题 我知道这应该是可以实现的。例如,可以将org-indent星号设置为与背景相同的颜色,因此它变为不可见: * Headline one ** Headline two 与 * Headline one * Headline two 您仍然可以将插入符号移到那里以查看星号,这很好。 回到我的问题,我不知道是否或如何对文本格式的标记执行相同的操作。

2
在引号内突出显示外壳变量
在vim中,以下文档将使第$PWD2行和第3行以两种不同的方式着色: #/bin/sh echo "Current Directory: $PWD" echo 'Current Directory: $PWD' 的第一个实例$PWD将与它所在的字符串的其余部分具有不同的颜色。这清楚地表明变量将被扩展,而不是被视为原义文本。相比之下,的第二个实例的$PWD颜色将与字符串的其余部分相同,因为单引号会将其视为文字文本。 是否有现有的emacs模式提供这种类型的“ shell引用意识”?
13 font-lock  bash 

1
优化字体锁定性能
我想执行锚字体锁定匹配的变体。我有以名称列表开头的函数定义,并且我希望这些名称在函数体内突出显示。 我已经创建了一个执行此操作的函数,并使用jit-lock-register将其注册为jit-lock函数,但是,性能相当差,并且较大文件中的滚动滞后。 如何评估效果?如果我只是在一个大文件上调用函数(前后有浮动时间,或者有elp),那么我得到的性能将发生巨大变化,这需要0.65到12秒的时间。有推荐的基准测试字体锁定性能的方法吗? 在font-lock-keywords中定义的锚定匹配器与通过jit-lock-register添加功能之间在性能上有什么区别吗? 编辑:似乎性能的变化与垃圾回收有关,我的jit-lock函数的调用每次调用都会逐渐变慢,直到运行垃圾回收为止,此时它们又变快了。

3
使用另一种主要模式来对缓冲区的区域进行字体化
我有一个缓冲区,用于显示Ansible模块的文档。该缓冲区具有其自己的主模式,该模式可提供所有标准内容。值得注意的是,它对缓冲区进行了字体处理以突出显示内联标记,选项,节等。总而言之,它与十分相似M-x man。 在文档的底部,通常在YAML中有一些代码示例。我也想将它们字体化。当然,我可以为YAML添加我自己的字体锁定关键字,但是我宁愿重用YAML模式的字体。 我怎样才能做到这一点?具体来说,如何使用不同的主模式来对缓冲区的特定区域进行字体设置? 请注意,该区域不需要激活 YAML模式。整个缓冲区仅是一个被动显示缓冲区,不能进行编辑。我真的只需要生成字体,就好像该区域中的“ YAML模式”处于活动状态一样。 我想我可以将缓冲区的区域复制到一个临时缓冲区,启用YAML模式,对缓冲区进行字体化,然后复制所有文本属性。那行得通吗?如果是这样,我该如何复制文本属性,以及要复制的相关属性是什么?还是有更好的方法?
12 font-lock  region 

1
颜色声明的变量
我正在寻找一种简单的方法来使emacs记住C / C ++中单个函数中的声明变量。“简单”是指没有任何外部软件包,而在配置文件中仅包含一些省略号行。 我的默认Emacs配置在声明时将变量名称涂成黄色,但在使用时将其涂成白色。 char toto; // 'char' is green, 'toto' is yellow toto = 42; // 'toto' is white 我也想将相同功能/范围的每个“ toto”都涂成黄色。 我已经看过这个问题,但是我想简单一些。我还尝试了使用字体锁定模式进行操作,但是我没有成功使某些内容适应于变量名。 我已经有了C ++类成员名称的想法(使用名称模式),所以我只想在这里匹配一个局部变量。

1
如何使用font-lock-defaults指定自定义面孔?
如果我使用现有的面孔定义字体锁定关键字,则可以突出显示字符串'foo'。 (defconst my-mode-font-lock-keywords (list (cons "foo" 'font-lock-type-face))) (define-derived-mode my-mode fundamental-mode "My mode" "A demo mode." (set (make-local-variable 'font-lock-defaults) '(my-mode-font-lock-keywords))) 这正确地突出显示: 但是,如果我定义自己的脸: (defface my-mode-foo-face '((t :inherit font-lock-preprocessor-face)) "Face for highlighting 'foo'.") (defconst my-mode-font-lock-keywords (list (cons "foo" 'my-mode-foo-face))) (define-derived-mode my-mode fundamental-mode "My mode" "A demo mode." (set (make-local-variable 'font-lock-defaults) '(my-mode-font-lock-keywords))) 没有应用突出显示: 如何font-lock-defaults定义自己的面孔?

2
如何在次要模式下添加复杂的语法突出显示?
我想在次要模式下以各种面孔突出显示代码。 这是接近我想要的屏幕截图: 有一两件事,我缺少的是具有注释字符#在 font-lock-comment-face。这样做的想法是使注释“属于”以纯文本突出显示的轮廓,因此更易于阅读。经常以平常不太显眼的表情发表评论。 这是我使用的代码: (setq-local font-lock-defaults '(python-font-lock-keywords nil nil nil nil (font-lock-syntactic-face-function . lpy-font-lock-syntactic-face-function))) (defun lpy-font-lock-syntactic-face-function (state) "Return syntactic face given STATE. Returns 'defalt face for comments that belong to an outline." (cond ((nth 3 state) (if (python-info-docstring-p state) font-lock-doc-face font-lock-string-face)) ((save-excursion (while (and (> (point) (point-min)) (progn (move-beginning-of-line …

1
如何仅针对给定模式自定义语法高亮
我想在lua-mode.el不影响其他主要模式的情况下更改语法高亮显示。 只是作为一个例子,我想“关键词”一样if,then,else是在大胆和蓝色字体时lua-mode(而不是默认的粉红色),而不必相同的高亮风格,同时编辑.tex同AUCTeX文件。 到目前为止,我已经尝试将以下代码放入我的代码.emacs,然后再放入我的代码lua-mode.el: (custom-set-faces '(font-lock-builtin-face ((t (:foreground "maroon3")))) '(font-lock-comment-face ((t (:foreground "green4")))) '(font-lock-keyword-face ((t (:foreground "dark blue" :weight bold)))) '(font-lock-string-face ((t (:foreground "dark cyan"))))) 但是通过这种方式,我在使用的每种模式下都会得到相同的语法突出显示。 这个问题可能是相关的:在不更改主模式的情况下更改语法突出显示? 有(希望简单和通用)的方法吗?

1
对LaTeX源代码块进行一致的语法突出显示
组织手册对org-babel代码块的语法突出显示的解决方案是使用以下命令打开本机字体 (setq org-src-fontify-natively t) 对于包含在块中的LaTeX代码效果很好 #+BEGIN_SRC latex 但不适用于具有: #+BEGIN_LATEX 有没有办法使两种类型的LaTeX源代码块使用相同的LaTeX语法突出显示方案/设置?
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.