Grey
#+ :OPTIONS ^:nil
org-mode的注释处理
关于这部分其实比较简单,在我现在的使用诉求上来说要求不多。但是我觉得如果考虑以后把文学式编程作为一种开发的主要体验的话,掌握这样的操作很有必要。因为我可以控制部分信息的输出。
自然,控制输出的方式还有其他的形式。但是目前看来,至少这个也是一种手段。现在,整个的工作流还在探索的阶段,因此很多信息难以判断是否应该取舍。既然这样,不妨多看看。
注释的形式
如果提到注释,想到的通常是编程语言。就我接触的最多的C语言来说,注释其实是有几种形式的。大的类型来说,应该是一个C模式的,一个C++模式的。前者采用 /* */ 的形式,可以实现块的注释。而这个块也可以理解为小块,小到一行甚至一行的一部分。C++的模式则是 // 开头,实现的功能就是注释掉由此以后的一行代码。如果代码中有续航符号,其实这个也是可以实现多行的处理的。很多时候,敲击键盘的便捷性以及编译器处理的快速性,让很多人偏爱于C++的风格。不过,这个算是本次内容整理的题外话了。
回到org-mode的注释,其实与C语言的注释有类似的形式。一个是行内注释,也就是对应C语言中的小块。另一个是行注释,基本对应C++模式注释掉一行的形式。还有一种则是块模式,这个可以注释掉连续的多行,类似C语言中的大块注释。不过,有一个在此类比之外的,那就是通过关键词来进行注释,这个是跟org-mode的标题一起来使用的。
注释的例子与说明
行内注释
这是一段尝试进行导出输出的一行信息,@@comment :这一段是无法导出的,因为这是行内注释@@不过这一段是可以的。
导出的形式如下:
这是一段尝试进行导出输出的一行信息,不过这一段是可以的。
值得说明一下的是前面我想按照原始信息保留一段带有org-mode行内注释语法的描述遇到了很大的困难,我找了各种转义以及零宽度等操作一直没有成功。但是讨巧使用换行来保证了导出格式。有时候遇到一些类似的问题,真觉得org-mode对于一般人的使用来说有挑战。类似的处理应该有更加优雅的方法,不过临时没有找到合适的解决方案,类似的讨巧的方式用了好多次。
行注释
这个比较简单,就是在一行最开始的地方加一个#和空格,这个空格必须得有。因为语法解析的要求是当#在换行之后且跟着一个空白字符的时候才会有注释的效果。自然,按照说明其他的空白字符应该也行。
块注释
#+begin_ comment
#+end_ comment
可以通过这样的一个双层结构来做一个块的注释处理,我觉得这种方式相对来说好一些。看上去比较符合我们自然语言的特征。
暂未看懂的宏
在相关的文档相连部分,我看到了一些关于宏的介绍。具体如下:
说起来,这个语法看起来并不是很复杂。但是,根据这些信息通过之前熟悉或者相近的编程语言想尝试对这个例子进行解析比较难。看起来,似乎这里的宏应该更加贴近于lisp中的一些行为的定义。或许,org-mode的解析模型得重新构建一个,至少不该使用我一直熟悉的编译器的模型。这里,应该没有所谓的预处理过程。
未来的探索预期
我对org-mode的预期应该是在两方面,一个是自己的学习笔记整理,另一个则是尝试文学式编程的模式。前者,我倒觉得在很多时候不需要过多的技巧,能够满足基本的记录诉求就可以。但是作为生产工具来用的时候,至少这种注释或者导出的禁用等功能配置会是工作流中应该关注的一个环节。这一次的学习,算是这方面的一个简单的起点,后面在摸索的过程中逐渐再丰富关于工具的理解模型以及更加合适的操作流。