[vox-tech] emacs delete key-binding
Micah J. Cowan
vox-tech@lists.lugod.org
Mon, 14 Jul 2003 14:16:24 -0700
On Mon, Jul 14, 2003 at 12:34:46PM -0700, Jonathan Stickel wrote:
> The default setup of emacs for Red Hat causes the "backspace" key to
> delete backward 1 character, the "delete" key to delete forward 1
> character, and "C-w" to kill a high-lighted region.
>
> I would like to have the "delete" key assigned to kill a highlighted
> region in addition to deleting 1 character forward. This is common
> behavior of most gui text editors and word processors. I tried the
> following in my .emacs file:
>
> (global-set-key [delete] 'kill-region)
>
> This does assign "delete" to kill-region, but no longer works to delete
> forward 1 character. If I the add the following to .emacs:
>
> (global-set-key [delete] 'delete-char)
>
> whichever assignment comes last (delete-char or kill-region) takes
> precedence. If I have the following:
>
> (global-set-key [delete] 'kill-region 'delete-char)
>
> I get errors on emacs startup (see below), but both delete-char and
> kill-region are in fact assigned to "delete"! Is there a correct way to
> do this? I am new to elisp (obviously).
(global-set-key [delete] (lambda () (interactive) (if mark-active
(kill-region (point) (mark)) (delete-char))))
might work: but I don't think that the region is always hilited: this
might call kill-region sometimes when you don't want it to. I
frequently use emacs in console-mode, where I don't see any hiliting
during a marked region, so I wouldn't prefer such a binding.
HTH,
Micah