all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "'YSK'" <koyfman@gmail.com>, <help-gnu-emacs@gnu.org>
Subject: RE: redefine C-h
Date: Sun, 10 Aug 2008 17:41:10 -0700	[thread overview]
Message-ID: <004901c8fb4a$f3628190$0200a8c0@us.oracle.com> (raw)
In-Reply-To: <eff0fc2f-7c64-4a6e-8ec6-8d389c955814@y38g2000hsy.googlegroups.com>

> > C-h is a normally prefix key, but I want to bind 'backward-char-
> > delete' to it. My .emacs has this:
> >
> > (global-unset-key "\C-h")
> > (global-set-key "\C-\M-h" 'help-command)
> > (global-set-key [C-h] 'delete-backward-char)
> >
> > I want to use C-M-h for help-command instead and use C-h for
> > backspace. However...it's not working. C-h remains a prefix key. My
> > understanding of prefix keys is basically nil, so there's probably
> > something pretty basic I'm missing here. Would anyone here be kind
> > enough to clue me in?
> 
> Problem solved: looks like the "icicles" package was overriding my key
> settings.

Icicles does not bind `C-h'. `C-h' with Icicle mode is the same as it is without
it. (*)

If `C-h' remains a prefix key after your customizations, I am sure that has
nothing to do with Icicles. And, as others have pointed out, [C-h] is not what
you want anyway - use [(control ?h)] or "\C-h" or (kbd "C-h") or [?\C-h] or...
And you should also customize `help-char', as Kevin pointed out.

Similarly, for `C-M-h': Icicles should not affect it. Your binding of `C-M-h' to
`help-command' should work OK everywhere. Is that not what you see?

Icicle mode does, however make some changes in the minibuffer keymaps. One that
is pertinent here is that it remaps command `delete-backward-char' to
`icicle-delete-backward-char' in the minibuffer completion keymaps. This is so
that whenever you delete a character in the minibuffer the set of candidate
completions is updated to reflect your edited input.

This is as it should be. This does not, however, affect the binding of
`delete-backward-char' outside of the minibuffer. And it does not even affect
its binding in the minibuffer, except during completion.

If you successfully change the binding of `delete-backward-char' to `C-h', then,
because Icicle mode remaps this to `icicle-delete-backward-char' in the
minibuffer during completion, `C-h' during completion will delete a minibuffer
character and update the set of completion candidates. 

IIUC, that should be just what you're after: `C-h' will always delete the
character before point. In the minibuffer, it will also update the completion
candidates - but that's the only difference. 

You can easily see all of this for yourself if you load library `help-fns+.el'
(**) and then use `C-h M-k' (`describe-keymap'). You can use `C-h C-k' to show
`icicle-mode-map' and each of the minibuffer maps: `minibuffer-local-map',
`minibuffer-local-completion-map', and so on. Quit Icicle mode and check the
minibuffer maps again, to see the difference. Check `global-map' too, to see
whether your customizations have really taken effect as you expect.
`describe-keymap' is your friend.

You should be able to get what you want and still use Icicles, without any
difficulty. If you have questions, feel free to ask. If you see a problem,
please file a bug report: `M-x icicle-send-bug-report'.

----
(*) In Icicle mode, these two `C-h' bindings are changed, but only if you so
choose - see option `icicle-top-level-key-bindings':

`C-h C-o' - `icicle-describe-option-of-type'
`C-h w'   - `icicle-where-is' (multi-command version of `where-is')

(**) `help-fns+.el' is available here:
http://www.emacswiki.org/cgi-bin/wiki/help-fns%2b.el







  reply	other threads:[~2008-08-11  0:41 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-08 17:13 redefine C-h YSK
2008-08-09  1:45 ` Joel J. Adamson 
2008-08-09 14:14 ` Kevin Rodgers
     [not found] ` <mailman.16197.1218291299.18990.help-gnu-emacs@gnu.org>
2008-08-09 16:00   ` YSK
2008-08-10 18:40     ` Xah
2008-08-11  1:10       ` YSK
2008-08-10 17:36 ` YSK
2008-08-11  0:41   ` Drew Adams [this message]
     [not found]   ` <mailman.16321.1218415295.18990.help-gnu-emacs@gnu.org>
2008-08-11  1:00     ` YSK
2008-08-11  4:07       ` Drew Adams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='004901c8fb4a$f3628190$0200a8c0@us.oracle.com' \
    --to=drew.adams@oracle.com \
    --cc=help-gnu-emacs@gnu.org \
    --cc=koyfman@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.