我正在使用org-mode
,我希望以@
开头的所有代码都以蓝色显示。
是否有可能以及如何做到这一点?
祝你好运
答案 0 :(得分:5)
以下答案使用org-mode
的内置机制。变量org-tag-faces
接受标记的正则表达式,即cons单元格的car
。函数org-set-tag-faces
设置全局变量org-tags-special-faces-re
,其组合了上述缺点单元格的标签。 org-tags-special-faces-re
通过org-font-lock-add-tag-faces
缓冲区使用全局变量re-search-forward
- 找到匹配的代码并根据函数org-mode
应用适当的面。函数org-get-tag-face
的原始版本查找找到的标记的完全匹配(即函数org-get-tag-face
的{{1}}参数)。修订后的key
版本会为assoc
添加org-get-tag-face
次搜索,并在找到key
后返回正确的面孔 - 这是必要的,因为标记本身通常会显示类似于@.*
或key
,而我们的上下文regexp是@home
。
@office
答案 1 :(得分:1)
您可以使用var ltrToNato = function(ch) {
var x = ch
var nato =
('{"A": "Alpha", "B": "Bravo", "C": "Charlie", "D": "Delta", "E": "Echo", "F": "Foxtrot", "G": "Golf", "H": "Hotel", "I": "India", "J": "Juliet", "K": "Kilo",\
"L": "Lima", "M": "Mike", "N": "November", "O": "Oscar", "P": "Papa", "Q": "Quebec", "R": "Romeo", "S": "Sierra", "T": "Tango", "U": "Uniform", "V": "Victor",\
"W": "Whiskey", "X": "X-Ray", "Y": "Yankee", "Z": "Zulu", "0" : "Zero", "1" : "One", "2" : "Two", "3" : "Three", "4" : "Four", "5" : "Five", "6" : "Six",\
"7" : "Seven", "8" : "Eight", "9" : "Niner"}')
var natoLower = nato.toLowerCase()
var natoAlpha = JSON.parse(nato)
var natoAlphaLower = JSON.parse(natoLower)
if (ch >= "A" && ch <= "Z")
return natoAlpha[ch]
else if (ch >= "a" && ch <= "z")
return (natoAlphaLower[ch])
else if (x.match(/[0-9]/g))
return natoAlpha[ch]
else
return x
}
//B
var wordToNato1 = function(str) {
var s = ""
for (var i = 0; i <= str.length-1; i++) {
s += ltrToNato(str[i])
}
return s;
}
console.log('nato: '+wordToNato1("ABC123"));
,例如,评估以下组织源块应该为&#39; @&#39;标记蓝色。
font-lock-add-keywords
评估后,还原缓冲区或致电#+TITLE: Tag face
#+BEGIN_SRC emacs-lisp
(defface org-tag-face
'((nil :foreground "blue" :background "#f7f7f7"))
"org tag face")
(font-lock-add-keywords
'org-mode
'((":\\(@[^\:]+\\):" (1 'org-tag-face))))
#+END_SRC
* test :@tst:
* test2 :tst:
和font-lock-flush
以更新字体锁定。