从 Emacs 缓冲区内的当前位置点,如何获取包含该点的最外层列表/s 表达式?
下面举几个例子来说明我想要实现的目标:
示例 1:
(defun xpto(arg)
(+ 2 4)[point])
输出 1:
(defun xpto(arg)
(+ 2 4))
示例 2:
(defun [point]xpto(arg)
(+ 2 4))
输出 2:
(defun xpto(arg)
(+ 2 4))
示例 3:
(defun xpto(arg)
(+ 2 4))[point]
输出 3:
NIL
Emacs 是否提供了任何“现成”功能来完成上述行为?
如果没有,您能指导我采用更简单的方法来完成它吗?
更新#1
正如建议的那样,我尝试了以下方法:
;; Gets the outermost brackets based on point position
(defun get-outermost-brackets()
(interactive)
(car (last (nth 9 (syntax-ppss)))))
;; Assigns that function to a key
(global-set-key [(control p)] 'get-outermost-brackets)
但是,在按下 CTRL+PI 后,无论该点在哪里,都没有输出。
我究竟做错了什么 ?