将 org 看成文字处理器

发布于 2024-06-29 09:16:28 字数 3438 浏览 17 评论 0

经常有人问我同一个问题:

Hi, 很感谢你在 youtube 上的视频,我看了之后有两个问题想问一下:

  1. 你在 这个视频 中是如何做到显示图片的?
  2. 如何向这个视频中那样,做到让 org-mode 的标题有更大的字体和不同的颜色?

我从未有意将 Org Mode 变得看起来或者操作上就像一个文字处理软件一样, 只是时不时的做一些小的调整,结果就成这样了。 虽然我所有的代码都在我的 dot-files 仓库中能找到,但是我还是觉得将相关代码抽取出来比较好些。

仅仅显示斜体字就好

/org italic/ 看起来就好像是斜体字被正则表达式的分隔符所包围了一样。 隐藏这些标记很简单

  (setq org-hide-emphasis-markers t)

记住,这些斜杠字符(用于标示粗体的星号等其他字符也是一样) 依然存在的,只是没有显示出来而已。

想要修改这些标记也很简单,只要在之上按退格键就行。

  • 更好看的符号列表标记

用星号和破折号来作为符号列表的标记挺好的, 但是使用一个真正的圆形符号来作标示也不错:

  (font-lock-add-keywords 'org-mode
    '(("^ +\\([-*]\\) "
        (0 (prog1 () (compose-region (match-beginning 1) (match-end 1) "•"))))))

这段代码将所有行中匹配指定正则表达式的内容都显示为一个 Unicode 的圆形符号,该段正则的意思是 以 1 个或多个空格开头,紧接着是一个破折号或一个星号,再又是一个 ​。

更好看的标题符号标记

当我刚开始从 Markdown 切换到 org-mode 时, 很看不惯标题的显示方式。 最高层标题由一个符号标记看起来还行(just not really a header),但是下面的子标题由多个符号标记。 这也是为什么我喜欢 org-bullets 项目的原因。

从 MELPA 上安装 org-bullets 之后, 只需要将下面这段代码添加到你的 .emacs 初始化文件中去就行:

  (require 'org-bullets)
  (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1)))

更好看的标题

我赞同 EMagicians Starter Kit 中的做法,尤其是它让 headers 变得更大而不是换个颜色。 我的代码有点繁琐,还可以进行很大的简化:

  (let* ((variable-tuple (cond ((x-list-fonts "Source Sans Pro") '(:font "Source Sans Pro"))
        ((x-list-fonts "Lucida Grande")   '(:font "Lucida Grande"))
        ((x-list-fonts "Verdana")         '(:font "Verdana"))
        ((x-family-fonts "Sans Serif")    '(:family "Sans Serif"))
        (nil (warn "Cannot find a Sans Serif Font.  Install Source Sans Pro."))))
      (base-font-color     (face-foreground 'default nil 'default))
      (headline           `(:inherit default :weight bold :foreground ,base-font-color)))

    (custom-theme-set-faces 'user
      `(org-level-8 ((t (,@headline ,@variable-tuple))))
      `(org-level-7 ((t (,@headline ,@variable-tuple))))
      `(org-level-6 ((t (,@headline ,@variable-tuple))))
      `(org-level-5 ((t (,@headline ,@variable-tuple))))
      `(org-level-4 ((t (,@headline ,@variable-tuple :height 1.1))))
      `(org-level-3 ((t (,@headline ,@variable-tuple :height 1.25))))
      `(org-level-2 ((t (,@headline ,@variable-tuple :height 1.5))))
      `(org-level-1 ((t (,@headline ,@variable-tuple :height 1.75))))
      `(org-document-title ((t (,@headline ,@variable-tuple :height 1.5 :underline nil))))))

上面代码的第一步是选择一个字体。 你需要修改这些字体为你自己所喜欢的那些字体。

总结

让我们将 Emacs 退出全屏模式,然后加载一个文件来展示一下这些设置的效果:

上图中的淡蓝色部分是被标示为了代码 (我之所以改颜色是因为我默认使用了等宽字体)。 此外,在这张屏幕截图中,我使用的主题是 Tomorrow ,字体用的 Hasklig 。 如果我有什么遗漏或者你有什么好技巧请告诉我,谢谢。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

遗忘曾经

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

我们的影子

文章 0 评论 0

素年丶

文章 0 评论 0

南笙

文章 0 评论 0

18215568913

文章 0 评论 0

qq_xk7Ean

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文