[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