强制表排序

时间:2012-07-20 16:53:48

标签: emacs org-mode

是否可以在Emacs org-mode中对给定的表或文件强制执行表排序?

当我说“强制执行”时,我的意思是表格应该排序 每当它被重新对齐时自动(例如当我点击<TAB>时 或C-c C-c)。我希望按照字母顺序排序 第一行。

我可以设置一些属性来实现这个目标吗?

1 个答案:

答案 0 :(得分:3)

一种选择是通过按键调用“建议”功能 http://www.gnu.org/savannah-checkouts/gnu/emacs/manual/html_node/elisp/Defining-Advice.html

;; advise a functions called by <TAB>
(defadvice org-table-next-field (around auto-sort-advice)
  "Sort table alphabetically according to the first rows"
  (progn
    ad-do-it
    (let ((pos (point)))
      ;; to to the first column
      (goto-char (org-table-begin))
      ;; one can change SORTING-TYPE (?a ?A ?n ?N ?t ?T)
      (org-table-sort-lines nil ?a)
      ;; restore position
      (goto-char pos))))

(ad-activate 'org-table-next-field)