all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Kevin Rodgers <ihs_4664@yahoo.com>
Subject: Re: Specifying Control-= as a string?
Date: Fri, 21 Jul 2006 09:30:05 -0600	[thread overview]
Message-ID: <e9qrv6$cjc$1@sea.gmane.org> (raw)
In-Reply-To: <2cd46e7f0607191015n2c975d39j631c0a6a9e3c94f2@mail.gmail.com>

Ken Manheimer wrote:
> is there any way to specify the one-character key sequence:
> 
>  [(control =)]
> 
> as a lisp string?
> 
> the strings "\C-=" and "\^=" complain about "Invalid modifier in string".
> 
> this question is mostly academic, at this point.  i was thinking about
> using it key as a binding in a keymap, but eventually realized that
> regular (non-window-system) ttys won't pass it as input.  though i've
> given up on that, i'd like to better understand the story here, and am
> curious about whether there's any way to express it as a string, or
> whether it's just a bad idea in principle (BIiP).

It is explained in the Init Rebinding node of the Emacs manual:

| If you have a set of key bindings that you like to use all the time,
| you can specify them in your `.emacs' file by using their Lisp syntax.
| (*Note Init File::.)
|
|    The simplest method for doing this works for ASCII characters and
| Meta-modified ASCII characters only.  This method uses a string to
| represent the key sequence you want to rebind.  For example, here's how
| to bind `C-z' to `shell':
|
|      (global-set-key "\C-z" 'shell)
...
|    When the key sequence includes function keys or mouse button events,
| or non-ASCII characters such as `C-=' or `H-a', you must use the more
| general method of rebinding, which uses a vector to specify the key
| sequence.
|
|    The way to write a vector in Emacs Lisp is with square brackets
| around the vector elements.  Use spaces to separate the elements.  If an
| element is a symbol, simply write the symbol's name--no other
| delimiters or punctuation are needed.  If a vector element is a
| character, write it as a Lisp character constant: `?' followed by the
| character as it would appear in a string.
|
|    Here are examples of using vectors to rebind `C-=' (a control
| character not in ASCII), `C-M-=' (not in ASCII because `C-=' is not),
| `H-a' (a Hyper character; ASCII doesn't have Hyper at all), <F7> (a
| function key), and `C-Mouse-1' (a keyboard-modified mouse button):
|
|      (global-set-key [?\C-=] 'make-symbolic-link)
|      (global-set-key [?\M-\C-=] 'make-symbolic-link)
|      (global-set-key [?\H-a] 'make-symbolic-link)
|      (global-set-key [f7] 'make-symbolic-link)
|      (global-set-key [C-mouse-1] 'make-symbolic-link)

The issue of whether a terminal can send a different key code for 
control-= than for = depends on the particular terminal.  But if
it can be configured to send an escape sequence (like for function
keys), you can get Emacs to recognize that by frobbing function-key-map
(see the Translating Input Events node of the Emacs Lisp manual).

-- 
Kevin

      parent reply	other threads:[~2006-07-21 15:30 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <2cd46e7f0607191006j4b8a2fat3bda91b1e941ae1b@mail.gmail.com>
2006-07-19 17:15 ` Specifying Control-= as a string? Ken Manheimer
2006-07-19 19:47   ` Slawomir Nowaczyk
2006-07-21 15:30   ` Kevin Rodgers [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='e9qrv6$cjc$1@sea.gmane.org' \
    --to=ihs_4664@yahoo.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.