在org-mode中突出显示和空格标记

时间:2014-11-02 04:40:53

标签: emacs tags elisp org-mode

我想改变标记在org-mode缓冲区中的显示方式:

*标题:tag1:tag2:tag3:

到此:

*标题tag1 tag2 tag3

基本上,我正在寻找的变化是:

  1. 在标题后立即开始标记。

  2. 隐藏:字符

  3. 在每个代码之间添加一个空格,以便在visual line mode

  4. 中正确包装长标签列表
  5. 删除标记的默认粗体格式并添加突出显示

  6. 到目前为止,我已经能够通过自定义Org Tag属性来更改字体并添加突出显示。作为临时/黑客,我通过启用:然后hi-lock-mode使M-x highlight-phrase [RET] : [RET] org-hide [RET]字符不可见。但这只是隐藏了冒号 - 它实际上并没有创造出真正的空间。所以标签仍然无法在visual line mode中正确包装。此外,它隐藏了所有冒号,而不仅仅是那些分隔标签的冒号。

    也许另一个选择是添加空格但留下冒号?

    *标题:tag1 :tag2 :tag3

    我一直在以曝光的主题试镜。这是一个截图:

    enter image description here

    任何想法,评论?谢谢!

2 个答案:

答案 0 :(得分:2)

如@lawlist所述,(setq org-tags-column 0)将标记放在标题之后。

要隐藏与标记关联的冒号,我尝试通过设置:的显示属性来尝试@Tobias建议的方法。将此代码段放在.emacsinit.el中似乎很适合我。

(font-lock-add-keywords 'org-mode
  '(("^\\*+ "
     ":" nil nil
     (0 (put-text-property (match-beginning 0) (match-end 0) 'display " ")))))

我指的是设置Search-based Fontification(matcher . anchored-highlighter)格式:

屏幕截图(请注意,我没有设置org-tags-column 0,所以它没有正确对齐,字体颜色由customize-face RET org-tag RET设置): enter image description here

答案 1 :(得分:0)

如果符合以下条件,您的要求可以解决:

  • 只有“:”符号
  • 有一个面部org-tag-separator(例如)
  • 您自定义了该脸部,使其前景等于您的背景。

询问组织ML?