如何在widen时,保持光标所在行/子树的位置不变

求助:请问在org-narrow-to-subtree后再次widen时(或是两次org-toggle-narrow-to-subtree),是否有什么办法保持光标所在行的位置不变(remember cursor position)?

每次编辑完之后widen时,编辑的内容都会被自动移到屏幕的顶部,这样会打乱本来内容的位置,要重新眼睛定位一遍,很难受。请问有没有什么解决办法

这样的?

(let ((point (point)))
  (widen)
  (goto-char point))
(defun widen-buffer ()
  (interactive)
  (let ((point (point)))
    (widen)
    (goto-char point)))

我把它放在了init.el文件中,但好像没什么变化,widen后内容还是被自动移到编辑器顶了……

可能是我太菜了……

可能是其他部分的问题?我这边测试发现widen不会重置point啊?

int main () {
  // hello
}
int world () {
  // foo
}

world()里按C-x n d(narrow-to-defun),然后再按C-x n w(widen),point仍然在world()里?