我一直在开发自己的自定义颜色主题,如果我能得到一个影响光标下文本的字体列表,那将非常有用.
类似Textmate的显示当前范围命令.
这样可以省去Mx自定义面部和查看可用选项的麻烦,猜测哪一个会影响我当前的单词.
有任何想法吗?
如何更改Emacs用于在每个模式下设置文本样式的默认面?
例如,假设我已经对我拥有的面部自定义感到满意,其中包括默认的固定宽度字体.但是,在一个特定模式(markdown-mode.el
比方说)中,我希望默认字体是可变宽度.
为标记模式设置标题,链接等很容易:只需将光标放在样式文本上M-x describe-face
,然后单击链接进行自定义.
但是,如果未指定其他面,则默认面是使用的面,因此它不是特定于降价模式,如果修改将影响所有其他模式.
markdown-mode-hook
使用此模式设置缓冲区的默认面可以添加什么魔力?
这是我的.emacs我可以搞乱它吗?
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there …
Run Code Online (Sandbox Code Playgroud) 我想在迷你缓冲区中显示彩色的文本字符串,但是当我使用'message'函数时,文本属性被剥离.
当使用npm时M-x term
,它会生成这样的颜色消息(即使使用-q):
来自的信息 what-cursor-position
There are text properties here:
font-lock-face (:foreground "red3" :background "black" :inverse-video nil)
fontified t
Run Code Online (Sandbox Code Playgroud)
它很难看,也很难在其他主题中阅读,是否有可能在飞行中改变颜色?例如,更改匹配的文本的颜色npm http
,npm ERR!
谢谢.
如果我运行emacs --daemon
(在.xinitrc
或之后)然后emacsclient -c
,新创建的帧具有黑色光标颜色,无论是colortheme还是任何其他设置.更确切地说,在我输入任何内容之前,光标颜色是白色(或其他颜色),但是第一个按键时它变为黑色并且无法通过改变set-cursor-color
.默认和我的自定义colorthemes都是黑色,所以它使编辑非常不舒服.
如果我跑emacs
,M-x server-start
而不是emacs --daemon
那么这个问题不会出现.但是这种方式我需要保留一个emacs"主"帧而不是偶然杀死它,这似乎不是一个很好的解决方案.
我有以下阻止,.emacs.d/init.el
但它没有帮助:
(set-cursor-color "red")
(setq initial-frame-alist '((cursor-color . "red")))
(setq default-frame-alist '((cursor-color . "red")))
(add-hook 'window-setup-hook '(lambda () (set-cursor-color "red")))
(add-hook 'after-make-frame-functions '(lambda (f) (with-selected-frame f (set-cursor-color "red"))))
Run Code Online (Sandbox Code Playgroud)
如果我跑,M-x describe-face RET cursor
我得到:
(...)
Defined in `faces.el'.
Family: unspecified
Foundry: unspecified
Width: unspecified
Height: unspecified
Weight: unspecified
Slant: unspecified
Foreground: unspecified
Background: black
Underline: unspecified
Overline: unspecified
Strike-through: …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将其他代码编辑器中的功能添加到我的Emacs配置中,其中#if 0 ... #endif块中的C/C++代码会自动设置为注释面/字体.根据我的测试,cpp-highlight-mode可以实现我想要的功能,但需要用户操作.似乎绑定字体锁功能是使行为自动化的正确选项.
我已成功地遵循GNU文档中的示例来更改单行正则表达式的表面.例如:
(add-hook 'c-mode-common-hook
(lambda ()
(font-lock-add-keywords nil
'(("\\<\\(FIXME\\|TODO\\|HACK\\|fixme\\|todo\\|hack\\)" 1
font-lock-warning-face t)))))
Run Code Online (Sandbox Code Playgroud)
可以在文件中的任何位置突出显示调试相关的关键字.但是,我在将#if 0 ...#endif作为多行正则表达式进行匹配时遇到问题.我在这篇文章中找到了一些有用的信息(如何编写区域,如"<?php foo; bar;?>"),这表明Emacs必须专门告知允许多行匹配.但是这段代码:
(add-hook 'c-mode-common-hook
(lambda ()
'(progn
(setq font-lock-multiline t)
(font-lock-add-keywords nil
'(("#if 0\\(.\\|\n\\)*?#endif" 1
font-lock-comment-face t))))))
Run Code Online (Sandbox Code Playgroud)
仍然不适合我.也许我的正则表达式是错误的(尽管它似乎使用Mx重构器),我搞砸了我的语法,或者我完全遵循错误的方法.我在OS X 10.6.5上使用Aquamacs 2.1(基于GNU Emacs 23.2.50.1),如果这有所不同.
任何援助将不胜感激!
如何调整term
新Emacs中的面部以获得可能的控制ansi-term-color-vector
?
Emacs 24.3中的一个新功能似乎是它改进了控制term
缓冲区面的机制,即:
变量
term-default-fg-color
和term-default-bg-color
现在弃用,取而代之的定制脸term
.您可以自定义如何通过定制相应的显示ANSI终端的颜色和样式
term-color-COLOR
,term-color-underline
和term-color-bold
面孔.
来自Mastering Emacs的Mickey 评论如下:
如果像我一样,您自定义
ansi-color-names-vector
更改默认术语颜色,我建议您现在切换到使用面部.这里的好消息是,您可以,应该更改,而不仅仅是为每种ANSI颜色更改颜色:没有什么能阻止您为某些颜色强制使用不同的字体
像米奇一样,我也ansi-color-names-vector
用来确保term
缓冲区的颜色在黑暗主题上看起来很好(例如tango-dark
)
(setq ansi-term-color-vector [unspecified “black” “red3” “lime green” “yellow3” “DeepSkyBlue?3” “magenta3” “cyan3” “white”])
Run Code Online (Sandbox Code Playgroud)
但现在这会导致错误:
"error in process filter: Invalid face; unspecified"
Run Code Online (Sandbox Code Playgroud)
为了尝试使用新面孔term
,当我去的时候M-x describe-face term
,我看到以下内容:
[] Font Family
[] Font Foundry
[] Width
[] Height
[] Weight
[] Slant …
Run Code Online (Sandbox Code Playgroud) 我Unable to load color "unspecified-bg" [16 times]
在使用时遇到错误emacsclient -c
.我已经开始使用emacs了emacs --daemon
.这似乎意味着我的自定义面将无法加载.
像往常一样启动emacs,然后使用时M-x server-start
,这个问题根本不会发生.如何emacsclient -c
正确加载面部?
这是相关的代码:
(custom-set-faces'(默认(((((((((((((((((((正常:重量正常:高度120:宽度正常:铸造厂"未知":家庭"Inconsolata")))))
emacs ×10
emacs-faces ×10
fonts ×3
font-lock ×2
aquamacs ×1
dot-emacs ×1
elisp ×1
minibuffer ×1
regex ×1
themes ×1