Emacs 怪异区域杀戮

Emacs 怪异区域杀戮,emacs,Emacs,当使用“kill region”终止区域时,emacs的行为有点奇怪,即即使没有真正选中区域,它也会终止该区域。它会以某种方式记住上一次选择的位置,如果此时没有选择任何内容,它会杀死以前记住的区域 这真的很让人困惑,因为意外的C-w(没有选择)切割了我绝对不想被切割的东西 有什么方法可以改变这种行为吗?您可以重新映射C-w以仅在选定区域当前存在时工作: (define-key global-map (kbd "C-w") (lambda () (interactive) (w

当使用“kill region”终止区域时,emacs的行为有点奇怪,即即使没有真正选中区域,它也会终止该区域。它会以某种方式记住上一次选择的位置,如果此时没有选择任何内容,它会杀死以前记住的区域

这真的很让人困惑,因为意外的C-w(没有选择)切割了我绝对不想被切割的东西


有什么方法可以改变这种行为吗?

您可以重新映射
C-w
以仅在选定区域当前存在时工作:

(define-key global-map (kbd "C-w")
  (lambda ()
    (interactive)
    (when mark-active
      (call-interactively 'kill-region))))

您可以重新映射
C-w
以仅在选定区域当前存在时工作:

(define-key global-map (kbd "C-w")
  (lambda ()
    (interactive)
    (when mark-active
      (call-interactively 'kill-region))))

仅供参考,之所以如此,是因为Emacs早于能够突出显示选定区域的奇特终端。您只需要光标位置(Emacs称之为“点”)和一个不可见的“标记”,它们一起构成了当前区域。突出显示该区域(并在某些操作后将其停用)是Emacs中的一个相当新的功能。仅供参考,其工作原理是Emacs早于能够突出显示选定区域的高级终端。您只需要光标位置(Emacs称之为“点”)和一个不可见的“标记”,它们一起构成了当前区域。突出显示该区域(并在某些操作后将其停用)是Emacs中一个相当新的特性。