unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: TheLonelyStar <nabble2@lonely-star.org>
To: Help-gnu-emacs@gnu.org
Subject: Redefine "(" and ")" keys in every mode
Date: Sat, 3 Jan 2009 07:31:00 -0800 (PST)	[thread overview]
Message-ID: <21265910.post@talk.nabble.com> (raw)


Hi,

I use the following functions (bellow) for redifine the insertions if ( and
).
The Idea is: When I type (, I want () inserted. When I type ) and the next
character is ), I want to just jump over it.

The Problem is: This works, as long as the mode I am in does not overwrite
the "(" or ")" key.
And, at the same time, when the mode overwrites this keys, it normaly has a
reason for it.

Has somebody an Idea how this can be done, so that it works in every mode?
Thanks!
Nathan

The functions:
-----------------------------------
(defun bracket (arg)
  (interactive "*P")
  (insert "()")
  (backward-char))
(define-key global-map (kbd "(") 'bracket)

;;Jump after character on insertion
(defun end-insertion (arg)
  (interactive "*p")
  (if (looking-at (concat "[\n \t]*" (this-command-keys))) (goto-char
(match-end 0)) (insert (this-command-keys)) (indent-according-to-mode))
)

(define-key global-map (kbd ")") 'end-insertion)
(define-key c-mode-base-map (kbd ")") 'end-insertion)
------------------------------
-- 
View this message in context: http://www.nabble.com/Redefine-%22%28%22-and-%22%29%22-keys-in-every-mode-tp21265910p21265910.html
Sent from the Emacs - Help mailing list archive at Nabble.com.





             reply	other threads:[~2009-01-03 15:31 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-03 15:31 TheLonelyStar [this message]
2009-01-03 21:57 ` Redefine "(" and ")" keys in every mode Drew Adams
2009-01-04  0:01 ` Andy Stewart
2009-01-04  0:19   ` Drew Adams
     [not found] <mailman.3849.1231013327.26697.help-gnu-emacs@gnu.org>
2009-01-05  2:26 ` Xah Lee

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=21265910.post@talk.nabble.com \
    --to=nabble2@lonely-star.org \
    --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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).