我认为一般来说,end-of-line
将点定位在行尾之后的下一个字符上。
我发现这在用 lisp 编码时很有帮助,因为它把点放在了一个完美的地方,可以轻松地评估以前的 s-exp。
但是,在视觉行结束的情况下,行结束后的第一个字符实际上在下一个视觉行上。如果您希望该点位于当前视线的最后一个字符上,则可以返回一个字符,如下所示:
(global-set-key (kbd "C-e") '(lambda ()
(interactive)
(end-of-visual-line)
(backward-char)))
编辑
实现相同目标的更好方法 - 这将解决您评论中的问题,只是启用视觉线模式:
(global-visual-line-mode 1)
这将自动使您C-a和C-e视觉线条一起工作。
视觉线模式的唯一问题是,默认情况下,没有指示符显示换行的位置。要解决此问题,您可以使用:
(setq visual-line-fringe-indicators '(left-curly-arrow right-curly-arrow))
您需要将visual-line-fringe-indicators
分配global-visual-line-mode
放在 .emacs 中的调用之前,以使其正常工作。
上述来源:http ://www.emacswiki.org/emacs/VisualLineMode