如何避免意外杀死emacs中的文本?

hor*_*guy 4 emacs elisp text-editor

我有一个突出显示模式(忘记所谓的),通过突出显示文本,我在标记和点之间选择了哪个区域.杀死地区时非常方便.但是,有时候,即使没有明显突出显示的文字,但我不小心按下了Cw,它仍会偶尔杀死一些文字.我的问题是如何阻止这种行为?如果我突出显示它,我只想要它杀死文本.

sco*_*zer 8

定义自己的函数并覆盖键绑定:

(defun my-kill-region ()
  (interactive)
  (if (region-active-p)
      (call-interactively 'kill-region)
    (message "Region not active, didn't kill")))

(global-set-key (kbd "C-w") 'my-kill-region)
Run Code Online (Sandbox Code Playgroud)


Har*_*d L 6

M-x transient-mark-mode
Run Code Online (Sandbox Code Playgroud)

即使在您开始输入之后,以及使用C-Space设置标记时,也会保持区域突出显示.然后你会看到Cw会杀死什么.


leg*_*cia 6

将变量设置mark-even-if-inactivenil.这样,只有在文本实际突出显示时才能删除文本.