Chinaunix首页 | 论坛 | 博客
  • 博客访问: 21180
  • 博文数量: 9
  • 博客积分: 1435
  • 博客等级: 上尉
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-13 08:34
文章分类

全部博文(9)

文章存档

2011年(1)

2009年(8)

我的朋友
最近访客

分类:

2009-05-22 14:35:26

 

Contents

简介

引用 上的一句话来说:

Emacs Muse is an authoring and publishing environment for Emacs. It simplifies the process of writing documents and publishing them to various output formats (HTML, PDF, DocBook, LaTeX, and more).

用 Muse 来写笔记是非常方便的,简易方便又实用的语法规则,并且在 里面能够达到一定的``所见即所得''的效果,可以输出为 TeX 、 pdf 、 html 等多种格式。固然,他的简易的语法不能像 html 那样的灵活性,也不会有LaTeX 那么强大,但是关键的地方是他的易用性,对于日常的笔记工作,不会有太多的复杂的要求,用 Muse 来完成是最合适不过的了!而且,Muse 还提供了一个 标签,里面的东西是不归 Muse 来解释,而由输出后的文档格式来解释。例如,现在 Muse 对表格的支持还很有限,你可以通过在 标签里面插入 html 表格的办法来产生复杂的表格,你也可以在 标签里面输入 TeX 格式的数学公式,这样产生的 TeX 或者 pdf 文档也是可以有漂亮的数学公式的。

总之, Muse 为你省去了平日重复输入繁琐的 html 标签或者 LaTeX 命令的工作,为你提供了一个清爽的环境,同时又不失灵活性,可以在必要的时候使用输出格式所专有的语法。它甚至有一个 标签可以嵌入 执行的结果!

输出格式定制

我一般是把自己的笔记输出为 html 格式,这样就得弄一些漂亮的 css 属性,于是在学习 css 的过程中我慢慢收集了一些,以把自己的笔记妆点得漂亮一点。 :)

不过 Muse 由于支持多种格式,所以目前很多功能还不如 emacs-wiki ,比如 fancy table 功能,以及格式化源代码的功能。我模仿 emacs-wiki 里面的扩展弄了一个 功能,使用就像 emacs-wiki 里面那样方便,不过这只是针对 html 一类的输出格式有用而已。

另外,Muse 还借鉴了 latex2png.el 在 html 输出格式中可以嵌入 latex 的公式。在有介绍和我的配置。

编辑技巧

结构化显示

如果是一个比较大的 Muse 文档的话,结构会越来越不清楚,定位也会有困难,这个时候可以打开 ,可以只显示一个骨干结构或者是只显示某个部分,结构非常清晰,编辑也非常方便。在把 TAB 键 就更加方便了。

另外,默认在 muse-mode 里面识别 outline 标题的正则表达式是 "\\*+" ,这有时候会识别错误,因为在 Muse 里面 * 还可以用于表示强调,如果强调的那个词刚好在行首的话就会识别错误了。事实上,如果是标题的话, * 后面应该至少还要有一个空格,所以这里可以修改一下这个正则表达式。这是一个buffer 局部变量,所以可以在 muse-mode 的 hook 里面修改而不用担心影响到全局的值。另外,打开文档的时候就使用 hide-body 来让他只显示框架是很不错的一个选择:

缩写词功能

另外,在编辑 Muse 文档的时候经常要输入类似 [[Emacs]] 这类的东西,有时候很麻烦,可以使用功能来解决这个问题。

如果平时在使用缩写词功能,那么只要定义 muse-mode 里面的缩写词,并保存到文件,启动的时候加载就行了。如果平时并没有使用什么缩写词功能,只是在 muse-mode 里面才使用的话,也可以在 ~/.emacs 里面加入定义缩写词的语句:

并在 muse-mode 的 hook 里面打开 abbrev-mode 就可以了。

当然,直接使用 更方便了。需要注意一点的是,muse 绑定了 键,而 是绑定的 TAB 键,在 X 下面的话就无法使用 TAB 在各个域之间切换了,这个时候可以使用 C-i

TAB 键跳转

默认情况下 TAB 键会在各个链接之间跳转,我觉得这没有什么用处,而且很烦人,我更喜欢让 TAB 键帮我缩进到正确的位置,于是我做了下面的绑定:

或者,使用更舒服的 的绑定。

引进 org-mode 的舒服的地方

org-modemuse-mode 有很多相似的地方,但是,可以说,他们的起源不同: muse-mode 主要是来源于 emacs-wiki-mode ,主要侧重于发布,因此在支持的发布格式以及发布格式的可定制性方面远胜于 org-mode ;而 org-mode 最初设置的目的是用于记事、维护 TODO 列表以及制作日程、计划等,侧重于编辑和交互,因此 org-mode 在交互(例如方便的 TAB 键行使 操作)和编辑(例如方便强大的表格编辑功能)方面比 muse-mode 要舒服很多。

现在有一些人也在考虑融合两者之间的优点,只是还没有什么明显的进展。我在这里介绍一些我自己的一些经验。

标题的显示

muse-mode 默认是把标题按照比例放大来显示的,我更喜欢 org-mode 那种(其实是来源于最初的 )不放大字体,而以不同的颜色来显示的方式。其实 Muse 已经有这个选项了:

TAB 键行使 outline 操作

muse-mode 里面 TAB 键默认被绑定到了 muse-next-reference 上,我基本上从来没有用过这个功能,而且还经常按错。因此我一般是。后来我发现 org-mode 里面的 TAB 说绑定的 org-cycle 命令不在 org-mode 里面也可以使用。于是便绑定了过来:

org-mode 的这个 org-cycle 命令非常方便,在标题的地方会执行相应的 操作,其他地方则是相应的缩进操作。当然,也需要在 muse-mode 里面 ,否则 Muse 自己的一些颜色显示等有时候会混乱起来。

Footnote

通常,如果你想要保证自己的 Muse 代码是可以通用地转换到任何格式,那么在里面使用某一种输出格式专有的语句通常是不被推荐的。

在 ASCII 码里面, C-iTAB 是相同的字符。如果终端能够把两者区分开(如果在 X 窗口下运行,通常是可以区分开的), 将两者分别解释作整数 9 和 symbol `tab' 。通常情况下,区分这两者并没有什么用处,因此默认情况下 function-key-map 被设置为把 `tab' 映射到 9 上。这里 muse 重新绑定了 `tab' ,不再映射到 9 上,所以再这里无效了。但是可以直接使用 C-i (即 ASCII 码的 9)。

阅读(1175) | 评论(0) | 转发(0) |
0

上一篇:Emacs Wiki

下一篇:学习Emacs

给主人留下些什么吧!~~