org是emacser常用的模式,具有富文本、鏈接、表格等功能?,F(xiàn)在想加一個函數(shù)功能,比如在這樣一句話中加入一個feed-dog函數(shù):
- This is a pre-defined function called feed-dog.
但是一般情況下org中的function是()形式,也就是必須寫成下面的形式才能執(zhí)行為功能:
- This is a pre-defined function called (feed-dog).
顯然,這樣看起來破壞了正常文本的格式,于是決定去掉括號,定義一個函數(shù)eval-last-sexp-without-parentheses即可實現(xiàn):
(defun eval-last-sexp-without-parentheses ()
(interactive)
(progn
(forward-word 1)
(funcall (intern (eval (current-word))))(sit-for 0.1)))
這個函數(shù)對eval函數(shù)進行了一些修改,也可以根據(jù)具體需求采用其它函數(shù)。
最后,將此函數(shù)綁定到一個快捷鍵上,這里用的是TAB:
(global-set-key (kbd "TAB") 'eval-last-sexp-without-parentheses)
如此以來,便實現(xiàn)了在文本中執(zhí)行功能。
應用場景似乎極少,比較適合整理思路。比如做一些TODO list時可以直接跳轉(zhuǎn)到相應預定義功能:
- feed-dog.
- submit-code.
如果預先定義submit-code,在檢查TODO時可直接執(zhí)行.