默认情况下,Org-mode中的删除文本(如:+ text +)为黑色.我想让它们变灰.问题是,我找不到定制它的地方.我试过了M=x describe-face,结果就是"默认面孔",这令人费解.Org-mode有没有配置透视颜色的地方?
我试图从Vim切换到Emacs几个月并遇到了一个奇怪的问题:当font-lock打开时,在emacs中滚动变得非常慢.配置相关部分的示例:
(require 'vimpulse)
(require 'font-lock)
(require 'color-theme)
(global-font-lock-mode 1)
;;(setq font-lock-maximum-decoration t
;;font-lock-maximum-size nil)
;;(setq font-lock-support-mode 'fast-lock-mode ; lazy-lock-mode
;; fast-lock-cache-directories '("~/.emacs-flc"))
Run Code Online (Sandbox Code Playgroud)
即使是以几百行开头的相对较小的文件,它也很慢.似乎这不是一个非常普遍的问题,因为到目前为止我没有找到任何明确的解决方案.
GNU Emacs 23.1.1 Ubuntu 10.04
在讨论字体锁定模式的页面上,提供了一个突出显示自定义模式的示例:
(add-hook 'c-mode-hook
(lambda ()
(font-lock-add-keywords nil
'(("\\<\\(FIXME\\):" 1 font-lock-warning-face t)))))
Run Code Online (Sandbox Code Playgroud)
是否有提供自定义颜色,而不是一种方式font-lock-warning-face,并没有定义一个新的自定义面孔.我希望能够写出如下内容:
(font-lock-add-keywords nil '(("\\<\\(FIXME\\):" 1 "Blue" t)))
Run Code Online (Sandbox Code Playgroud)
或RGB颜色定义:
(font-lock-add-keywords nil '(("\\<\\(FIXME\\):" 1 "#F0F0F0" t)))
Run Code Online (Sandbox Code Playgroud)
使用双引号不起作用.你知道什么会使其工作?
我想只更改Org-Agenda缓冲区中的face属性.所以我需要在本地更改Org-Agenda面部属性缓冲区.
这是我的代码:(全球范围内)
(defun my-org-agenda-hl-line ()
(hl-line-mode)
(set-face-attribute 'hl-line nil
:box '(:color "deep pink" :line-width 2))
)
(add-hook 'org-agenda-mode-hook 'my-org-agenda-hl-line)
Run Code Online (Sandbox Code Playgroud)
请帮我在本地制作这个缓冲区.谢谢
问题解决了
我决定使用名为Ricty的缩放定制字体.这是一种更简单的方法.
-
我正在设置Emacs字体大小,使用face-font-rescale-alist,如下所示.
(create-fontset-from-ascii-font "Inconsolata-12:weight=normal:slant=normal" nil "myfavoritefontset")
(set-fontset-font "fontset-myfavoritefontset"
'japanese-jisx0208
(font-spec :family "TakaoExGothic" :size 12)
nil
'append)
(add-to-list 'default-frame-alist '(font . "fontset-myfavoritefontset"))
(setq face-font-rescale-alist
'(("^-apple-hiragino.*" . 1.2)
(".*osaka-bold.*" . 1.2)
(".*osaka-medium.*" . 1.2)
(".*courier-bold-.*-mac-roman" . 1.0)
(".*monaco cy-bold-.*-mac-cyrillic" . 0.9)
(".*monaco-bold-.*-mac-roman" . 0.9)
("-cdac$" . 1.3)
(".*Inconsolata.*" . 1.0)))
Run Code Online (Sandbox Code Playgroud)
来自http://d.hatena.ne.jp/shammer/20120811/1344701212
要检查字体大小,每次更改值时都会重新启动Emacs.
如何在不重新启动Emacs的情况下刷新字体大小?
我有一个函数可以将 Emacs 的颜色主题设置为我自己定义的主题。在这个功能中,我做:
(set-face-attribute 'default cur-frame :foreground fg-color :background bg-color)
Run Code Online (Sandbox Code Playgroud)
然后我为default-frame-alist、initial-frame-alist和设置背景颜色、前景色和光标颜色special-display-frame-alist。
所有这些在我的 Mac 上都运行良好。但是当我在 Linux 上使用它时,对于已经打开的所有框架看起来都很好,但是在新创建的框架上它看起来像这样:

如果使用set-background-color/set-foreground-color函数而不是 ( set-face-attribute 'default ...) ,则新框架不会出现此问题。但是如果我这样做,我必须手动重置已经打开的每个帧的颜色。
我在 Mac 和 Ubuntu 上都使用 Emacs 23.3 版。
为了澄清起见,这是我使用的主题文件:
不可否认,这是一个第一世界的问题,但我对显示器的外观有点挑剔,我发现当某些模式设置新的字体大小,系列,粗体/斜体等时,它真的很烦人.我是什么我喜欢把它放在(set-frame-font "Menlo-10")我的.emacs顶部附近,然后强制emacs永远不会改变除默认字体以外的任何方面.
通过这样做,我可以得到我想要的效果:
(mapc (lambda (face)
(set-face-attribute face nil
:family "Menlo"
;; something like (cdr (assoc 'font (frame-parameters)) would be better
;; for the :family, but it didn't immediately work
:width 'normal
:height 1.0
:weight 'normal
:underline nil
:slant 'normal))
(remove 'default (face-list)))
Run Code Online (Sandbox Code Playgroud)
但是只有在我加载了一个新的缓冲区后才能工作,这个缓冲区已经创建了要改变的字体锁面,而且无论如何都是一个可怕的黑客攻击.我怀疑在字体锁定方面没有真正用于忽略模式请求的某些部分,但我想我会问.
此外,AUCTeX是迄今为止最糟糕的攻击者,所以如果在某个地方交替使用AUCTeX设置以防止它首先要求改变族,大小等,这至少会使问题变得不那么烦人.
我目前正在使用最近从HEAD撤出的Emacs 24.
我偶尔会遇到需要通过emacs发送一段代码的情况.当我将文本粘贴到我的电子邮件程序(而不是emacs)时,所有颜色突出显示都会丢失.粘贴时尤其令人失望org-mode,因为它在很大程度上依赖于颜色的可读性.保留字体面很好.
有没有办法做到这一点?我正在寻找类似的输出ps-print-buffer-with-faces.
有没有办法在Emacs中定义一个面(例如高亮显示hl-line),这样它只会改变背景颜色(并让Emacs使用前景色,就像单词没有突出显示一样).
更具体地说,我在tango-dark主题上尝试了以下内容
(custom-set-faces
'(region ((t (:inherit nil :background "RoyalBlue4"))))
'(highlight ((t (:inherit region :background "dark olive green"))))
'(hl-line ((t (:inherit highlight)))))
Run Code Online (Sandbox Code Playgroud)
并且,如下所示,区域突出显示确实尊重前景字体(即它只改变背景颜色):

但是当前行的突出显示不是:

为什么?我怎样才能获得同样的效果hl-line?
这似乎是tango-dark主题中的一个错误(Emacs的内置主题).该代码适用于默认主题(加载时emacs -Q).我在官方错误邮件列表上发布了这个.
我想看看是否有办法在主模式下更改模式链接前景和背景颜色,
我正在考虑添加逻辑
(add-hook 'after-change-major-mode-hook
Run Code Online (Sandbox Code Playgroud)
但是,我没有所有emacs lisp经验来做出这样的改变.这是逻辑:
switch major-mode:
case "emacs-lisp-mode":
(set-face-foreground 'mode-line "ivory")
(set-face-background 'mode-line "DarkOrange2")
case "ruby-mode":
(set-face-foreground 'mode-line "white")
(set-face-background 'mode-line "red")
...
default:
(set-face-foreground 'mode-line "black")
(set-face-background 'mode-line "white")
end switch
Run Code Online (Sandbox Code Playgroud)
提前谢谢了!.