Emacs,使用Delete键删除选择

时间:2013-12-28 15:53:48

标签: emacs textselection

首先,这不是重复的

我在谈论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))))

适合我。

3 个答案:

答案 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))))