视线结束到Emacs的下一行开头

时间:2013-08-16 08:10:02

标签: emacs

我想使用beginneing-of-visual-lineend-of-visual-line

所以我在.emacs中写过如下。

(global-set-key "\C-a" 'beginning-of-visual-line)
(global-set-key "\C-e" 'end-of-visual-line)

beginning-of-visual-line按照我的意愿行事。 但是如果我在视觉上多行使用C-e,光标就会转到下一行的开头。

为什么会这样?我该如何解决?

我在Mac OS X 10.7.5中使用Emacs 24.3(9.0)。

1 个答案:

答案 0 :(得分:2)

我认为一般情况下,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))

您需要在.emacs中的visual-line-fringe-indicators电话前放置global-visual-line-mode作业才能使其正常运行。

上述来源:http://www.emacswiki.org/emacs/VisualLineMode