Emacs:清理超过9行的编号列表

时间:2014-12-11 21:22:52

标签: emacs elisp org-mode

Emacs中是否有一个设置会自动重新排列超过9行的编号列表?例如,默认行为为我提供了这个:

1. Item one
2. Item two
3. Item three
4. Item four
5. Item five
6. Item six
7. Item seven
8. Item eight
9. Item nine
10. Oops! <-- notice the indent

我希望看到的是这样的:

 1. Item one
 2. Item two
 3. Item three
 4. Item four
 5. Item five
 6. Item six
 7. Item seven
 8. Item eight
 9. Item nine
10. item ten

谢谢你们!

1 个答案:

答案 0 :(得分:2)

编辑:正如评论者所指出的,此解决方案将按要求缩进列表,但这样做会破坏组织模式功能。由于组织模式要求列表不以这种方式缩进,因此无法同时使用两者。

这可以做到:

(defun align-line-numbers (front back)
  (interactive "r")
  (align-regexp front back "^\\([0-9]+\\)" -1 0 t))

然后,您可以标记该区域并调用该函数以缩进所有数字。

9. Item nine
10. Oops!
100. foo
1000. bar

变为

   9. Item nine
  10. Oops!
 100. foo
1000. bar

如果它总是整个缓冲区,

(defun align-line-numbers nil 
  (interactive)
  (align-regexp (point-min) (point-max) "^\\([0-9]+\\)" -1 0 t))