Emacs バッファ内のポイント現在位置から、そのポイントを含む最も外側のリスト/s-expression を取得するにはどうすればよいですか?
私が達成したいことを説明するために、いくつかの例に従います。
例 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 を押した後、ポイントがどこにあっても出力が得られません。
私は何を間違っていますか?