all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Andy Stewart <lazycat.manatee@gmail.com>
To: help-gnu-emacs@gnu.org
Subject: Re: Redefine "(" and ")" keys in every mode
Date: Sun, 04 Jan 2009 08:01:48 +0800	[thread overview]
Message-ID: <87wsdcc51v.fsf@debian.domain> (raw)
In-Reply-To: 21265910.post@talk.nabble.com

Hi,
I recommend you install paredit.el with Emacs.
It is a minor mode for performing structured editing of S-expression
data.
Of course, it can insert () when you type (, and type ) jump next if
have next one.
You can find it at: http://www.emacswiki.org/emacs/ParEdit

Regards,

  -- Andy

TheLonelyStar <nabble2@lonely-star.org> writes:

> 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)
> ------------------------------





  parent reply	other threads:[~2009-01-04  0:01 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-03 15:31 Redefine "(" and ")" keys in every mode TheLonelyStar
2009-01-03 21:57 ` Drew Adams
2009-01-04  0:01 ` Andy Stewart [this message]
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

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

  git send-email \
    --in-reply-to=87wsdcc51v.fsf@debian.domain \
    --to=lazycat.manatee@gmail.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.