以这个文件为例子:
多用表格会让导出的内容美观很多。
code block 的变量甚至可以跨文件引用,平时要维护的 org 可以做到非常清爽。只定义变量,使用变量的逻辑放到其它的文件。
注释段落很实用,方便从几个选项中切换。比如这个文件中两种字体风格的选择。
用 checkbox 作为开关很方便,C-c C-c 切换很顺手。
以这个文件为例子:
多用表格会让导出的内容美观很多。
code block 的变量甚至可以跨文件引用,平时要维护的 org 可以做到非常清爽。只定义变量,使用变量的逻辑放到其它的文件。
注释段落很实用,方便从几个选项中切换。比如这个文件中两种字体风格的选择。
用 checkbox 作为开关很方便,C-c C-c 切换很顺手。
一直用org管理配置文件,省事很多,就一个大的org,按目录分级,反正也不在乎启动时间,一般最多也就每天启动一两次,而且说实话,10多秒和1s,真没太大区别
说实话没怎么看懂……
这个文件里面的表格和列表本身就是配置,改配置的时候就是改这些内容。
细说checkbox作为开关?
以前没写过 elisp,折腾了一会。下面这个很基本的代码能设置字符串的值了。希望这里有个 package 之类的。
#+name: table1
|-------------------+--------------------------|
| one/test-variable | test something for babel |
| two/test-varaible | test variable two |
|-------------------+--------------------------|
#+begin_src emacs-lisp
(defun eval-couple (variable value)
(set (intern variable) value))
(defun eval-table (table)
(append '() table)
(mapcar (lambda (couple)
(apply 'eval-couple couple))
table))
#+end_src
#+begin_src emacs-lisp :var tbl=table1
(eval-table tbl)
#+end_src
我是选择装一些 theme 然后从中选一些用快捷键循环。
我的配置里面也是这么做。我觉得几行的代码不需要包了。
(defun meomacs-load-vars-from-pass (&rest ignore)
(dolist (row pass-table)
(let ((var-name (intern (car row)))
(entry-name (cadr row)))
(set var-name (password-store-get entry-name)))))
有意思,虽然我不用 org 写配置,但是这个思路可以抄。
找到一个可以用 markdown 写的 https://github.com/joakimmj/md-tangle。
其实就是个文件生成器。注释多的话,可以考虑。
不过没有 elisp 能读 org 表格这么优雅。
感觉还可以做得更智能的,比如说对于一些设定 key map 的设定 face attribute 的,这些都会有很多重复的命令,如果能有 macro 能够读取表格,然后可以调用任意的指定的命令的话会很方便。
| face | :family | :height |
|-----------------+----------------+---------|
| 'variable-pitch | Source Serif 4 | 200 |
| 'default | Fira Code | 200 |
use some macro ⇒
#+begin_src emacs-lisp
(set-face-attribute 'variable-pitch nil
:family "Source Serif 4"
:height 200)
(set-face-attribute 'default nil
:family "Fira Code"
:height 200)
#+end_src
是的,但是如果真的要做的很完善的话,我觉得需要找个办法提高输入的准确性,比如补全。
不然 face variable command 这些名字相比在 elisp buffer 中更容易打错的。
用org-table自定义yasnippets,非常简洁。
#+name: org-yasnippets
| key | template | name |
|---------+---------------------------------------------+---------------------------------|
| date | #+DATE:`(format-time-string "%Y-%m-%d")`$0 | Add date keyword |
| author | #+AUTHOR:${1:`user-full-name`} | Add Author keyword |
| filetag | #+FILETAGS: | File tag |
| tblfm | #+TBLFM: $0 | tbflm |
#+BEGIN_SRC emacs-lisp :var data=org-yasnippets
(yas-define-snippets 'org-mode data)
#+end_src
没用 org mode 毕竟只是写给自己看的 comment 就够了
只要目录分级的话 最近用 outli-mode 蛮好的
放在 config dir 的 .dir-locals.el
((nil . ((eval . (outli-mode)))))
够用是一回事儿, 体验提升是另一回事儿, 两件事儿不冲突. outline 是一回事儿, org 文学编程是另一回事儿, 两件事儿也不冲突.
对比一看我的用法就非常懒狗…代码块里写原文,tangle 一把梭