Alex Rivera | Logout

delete only one character when region is highlighted

Asked 2010-08-30T12:42:37.817
12

I cannot find the setting that prevents deletion of an entire region when you have it highlighted and you hit backspace... (I just want it to delete one character even if a region is highlighted.) I already have

(delete-selection-mode 0)

and in custom-set-variables (I have cua-mode enabled for its rectangle functions),

'(cua-delete-selection nil)

but that is the behavior I get. Am I missing something?

Edit
Report

3 Answers

5

Found it:

(setq delete-active-region nil)

is the answer. Thanks to all for toughing it out with me!

answered 2010-08-30T15:22:14.737
1

In ELisp, 0 is considered as true.

Try by setting

(setq delete-selection-mode nil)
answered 2010-08-30T12:59:40.730
1

As has been noted, cua-mode doesn't handle this nicely. The simplest way to retain that mode without this problem would seem to be to redefine the cua keymap (see cua--init-keymaps) after initialising the mode, to unbind the various delete keys from cua-delete-region:

(add-hook 'cua-mode-hook 'my-cua-mode-hook)
(defun my-cua-mode-hook ()
  (define-key cua--region-keymap [remap delete-backward-char] 'delete-backward-char)
  (define-key cua--region-keymap [remap backward-delete-char] 'backward-delete-char)
  (define-key cua--region-keymap [remap backward-delete-char-untabify] 'backward-delete-char-untabify)
  (define-key cua--region-keymap [remap delete-char] 'delete-char))
answered 2010-08-30T21:29:51.103

Your Answer