all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Tim Visher <tim.visher@gmail.com>
To: gebser@mousecar.com
Cc: GNU Emacs List <help-gnu-emacs@gnu.org>
Subject: Re: create new key prefix
Date: Wed, 20 Feb 2013 12:44:34 -0500	[thread overview]
Message-ID: <CAHa53uz_ZsWVZdUvhCB=50T4mB-rJGWPz1e7zyERn+X4=zPJsg@mail.gmail.com> (raw)
In-Reply-To: <512498CC.3070009@mousecar.com>

On Wed, Feb 20, 2013 at 4:35 AM, ken <gebser@mousecar.com> wrote:
> On 02/19/2013 08:41 PM Tim Visher wrote:
>> On Tue, Feb 19, 2013 at 8:36 PM, ken<gebser@mousecar.com>  wrote:
>>> On 02/19/2013 08:20 PM Tim Visher wrote:
>>>> On Tue, Feb 19, 2013 at 6:26 PM, ken<gebser@mousecar.com>   wrote:
>>>>> I've defined quite a few new keys over the years and so would like to
>>>>> create
>>>>> a new key prefix.  I.e., I want to be able to define keys such as "C-c
>>>>> p
>>>>> s",
>>>>> "C-c p m", etc.  So how do I tell emacs that (for all possible modes) I
>>>>> want
>>>>> "C-c p" to look for the new key definitions.
>>>>>
>>>>>   From what I've read so far, how this is done depends a lot on the
>>>>> particular
>>>>> emacs version.  Mine's 22.1.1.
>>>>
>>>> `(global-set-key (kbd "C-c p m") 'func-name)` doesn't work for you?
>>>> The caveat to that is that modes down the line can possible shadow the
>>>> binding. But that's easy enough to solve with `(eval-after-load…`
>>>> forms.
>>>
>>> Thanks much for the reply.  I have almost no idea what you said, but it
>>> got
>>> me to try the code which I already wrote (which I didn't do before
>>> because I
>>> didn't think it would work, thought sure there was something missing).
>>> The
>>> code I already wrote and left sitting there untested for a couple-three
>>> hours... it works!!
>>>
>>> Well that's a completely new experience for me.  B^D
>>
>>
>> LOL. Good to know.
>>
>> As an aside, what are you confused about regarding what I said? Maybe
>> I can help clear some things up for you?
>
> What I read in several docs on the web implied that a command was needed
> first to create a sparse map (i.e., define-prefix-command) and then to
> assign it to a key prefix, in my case, "C-c p".  So when you wrote/asked,
> "`(global-set-key... doesn't work for you?", it didn't compute with me at
> all at first because it seemed like you were ignoring/forgetting all that.
> But then 1% of me thought, maybe this guy is one of the 0.02% who knows what
> he's talking about, prompting me to try running my own code (which was
> likewise ignoring/forgoing sparse map creation etc.).  My crap not only ran
> without error, but it also worked perfectly!

Generally you use sparse maps, etc. when you're defining a keymap for
a mode that you're writing or when you want to activate a group of
keys all at once. In your case you probably aren't intending to do
that.

> The other part is the reference to "(eval-after-load..."; from your context
> I gather that it's meant to remedy some other code stepping on my
> keybindings (and perhaps too other definitions).  But how, when, and where
> to actually implement that function gribbles the laft whicher bonkhaft.

`eval-after-load` is just a way to evaluate a function after a library
is loaded. In other words, if I wanted to have `C-c p p` do something
but `mode-x` defined `C-c p p` to do something else, the easiest way
I've found to step on the mode's definition is to do an
`(eval-after-load 'mode-x '(local-set-key (kbd "C-c p p")
'func-name))`. That will reset they key in that mode back to what you
want it to be.

--

In Christ,

Timmy V.

http://blog.twonegatives.com/
http://five.sentenc.es/ -- Spend less time on mail



      reply	other threads:[~2013-02-20 17:44 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-19 23:26 create new key prefix ken
2013-02-20  1:20 ` Tim Visher
2013-02-20  1:36   ` ken
2013-02-20  1:41     ` Tim Visher
2013-02-20  9:35       ` ken
2013-02-20 17:44         ` Tim Visher [this message]

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='CAHa53uz_ZsWVZdUvhCB=50T4mB-rJGWPz1e7zyERn+X4=zPJsg@mail.gmail.com' \
    --to=tim.visher@gmail.com \
    --cc=gebser@mousecar.com \
    --cc=help-gnu-emacs@gnu.org \
    /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.