如何让Emacs的光标停止跟随屏幕

如图:

我的光标现在位于第7行,现在我 Ctrl+v 往下翻页。翻页后,如图: 光标自动跑到了 27 行。我希望光标不要跟随翻页或者滚动鼠标滚轮等操作改变位置。就和其他现代文本编辑器一样。怎么做呢?

光标得要看的见吧,你翻页后,第 7 行都不在屏幕里了。

就是希望光标看不见,一直停留在7行那里。和现代的文本编辑器一样的效果啊,EditPlus,Atom,VSCode那种光标效果。

1 个赞

哦,明白了。用系统自带的 TextEdit 感受了一下。

这个问题有时候的确挺讨厌的,有鼠标浏览一下代码的其他部分,回来后发现光标跑了。我也木有找到解决的办法,关注中…

有什么Emacs配置或者插件可以做到那种效果么

我不知道,估计应该很难做到。Google 搜索 “emacs scroll without moving cursor” 有不少结果,同样的问题在不同地方、不同时间被问过,但我没看到什么完美的解决方法。比如这个:


或许可以试试写一个 Minor Mode:当用户执行 Scroll 操作的时候,就开启这个 Mode,记住 Cursor 的位置,再隐藏 Cursor;当用户执行别的操作的时候,把 Cursor 的位置复原,再显示它,最后离开这个 Mode。

滚屏的时候保持光标位置不动,这我理解,毕竟已经在用鼠标了,想要把光标移到屏幕上的目标位置,也只需多点一下。

但是翻页的时候就有迷惑了,当我用快捷键翻了N页,找到了目标位置,要怎么把光标移上去修改?按上下左右快捷键岂不回到瞬间跳回到原始位置?再按一下鼠标?

你说的对,只要在鼠标滚动的时候能保持光标位置就可以。

Emacs这个设计不合理啊。鼠标滚动的时候光标也滚动,让人觉得乱

我怎么觉得用滚轮翻页就是通过移动光标实现的(Mac ):sweat:

终端里面的确是这样。 但图形界面不是。

能不能像 undo 文本一样 undo 光标位置?

开左右两个窗口