即使在 Emacs 中使用全局可视行模式,“(kill-line 0)”也会杀死物理行

即使在 Emacs 中使用全局可视行模式,“(kill-line 0)”也会杀死物理行

我是backward-kill-line这样定义的。

(defun backward-kill-line ()
  (interactive)
  (kill-line 0))

而且我正在使用global-visual-line-mode.

kill-line杀死了视线,但这也backward-kill-line杀死了物理线。我怎样才能改变backward-kill-line这种只会破坏视线的情况?

答案1

kill-line即使在视觉线模式下,仍然会破坏物理线。不过关键C-k是反弹到kill-visual-line

Emacs 没有backward-kill-line命令,但您可能在某处找到了一个。如果您想要一个消除视线的函数,请创建一个backward-kill-visual-line函数,或者使用以下组合函数,如果处于视线模式,则消除视线,否则使用物理线。

(defun backward-kill-visual-line (arg)
  "Kill ARG visual lines backward."
  (interactive "p")
  (funcall (if visual-line-mode #'kill-visual-line #'kill-line)
           (- 1 arg)))

相关内容