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的預期應該是在兩方面,一個是自己的學習筆記整理,另一個則是嘗試文學式編程的模式。前者,我倒覺得在很多時候不需要過多的技巧,能夠滿足基本的記錄訴求就可以。但是作為生產工具來用的時候,至少這種注釋或者導出的禁用等功能配置會是工作流中應該關注的一個環節。這一次的學習,算是這方面的一個簡單的起點,后面在摸索的過程中逐漸再豐富關于工具的理解模型以及更加合適的操作流。