You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Emacs中保存光标初始位置,执行代码后恢复原位置?

解决Emacs函数中保存并恢复光标位置的问题

直接用point函数就能获取当前光标所在的缓冲区字符位置,不需要从what-cursor-position里提取信息——后者主要用于在minibuffer显示光标相关信息,并非返回位置值。

修改你的代码为:

(setq my_cursor_position (point))
(do-some-stuff)
(goto-char my_cursor_position)

point会返回一个整数,对应光标当前的字符位置,正好是goto-char所需的参数,这样就能动态保存光标位置,执行完操作后精准恢复。

如果你的需求只是在执行一段代码后自动恢复光标位置和窗口视图,更推荐用save-excursion宏,它会自动处理保存与恢复,代码更简洁:

(save-excursion
  (do-some-stuff))

这段代码执行完do-some-stuff后,光标会自动回到执行前的位置,窗口滚动状态也会恢复。

内容的提问来源于stack exchange,提问作者Nobody-86

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:36:58