首先,这不是重复的
cua-mode
。我在谈论Emacs Delete Selection Mode,我以前只需按删除键即可删除文本选择。我找到了我的证据here。
要在按DEL,Ctrl-d或Backspace时将emacs设置为删除所选文本,请将以下内容添加到.emacs文件中:
(delete-selection-mode t)
但是,现在,使用我的Emacs 24, Delete 键不再适用于选择(仅 Backspace )。这真的很烦人,因为对于我使用的所有编辑器,按 Delete 键将删除文本选择。我不明白为什么Emacs必须如此不同和不方便。无论如何,
任何简单的方法来修复它?我不知道以下the comment是笑话还是实际的解决方案:
(setq behave-like-something-actually-usable-by-humans t)
由于
PS,我的Emacs 24来自夜间构建:
$ emacs --version | head -1
GNU Emacs 24.3.50.1
编辑:德鲁的回答,如果您不清楚(我是第三次尝试的话),
(global-set-key (kbd "<delete>") '(lambda (n) (interactive "p") (if (use-region-p) (delete-region (region-beginning) (region-end)) (delete-char n))))
适合我。
答案 0 :(得分:1)
<delete>
键默认绑定到kill-line
。听起来你想将它绑定到delete-region
。就这么做。
(global-set-key (kbd "<delete>") 'delete-region)
答案 1 :(得分:0)
delete-char
的行为似乎发生了变化。我经历过这一点以及我将DEL绑定到该命令。我成功地将密钥绑定到delete-forward-char
,这实现了旧的行为。请参阅here。
答案 2 :(得分:0)
在21.4.22中,我必须使用(region-active-p)
函数而不是(use-region-p)
(global-set-key `backspace '(lambda (n) (interactive "p") (if (region-active-p) (delete-region (region-beginning) (region-end)) (delete-backward-char n))))