From: "Drew Adams" <drew.adams@oracle.com>
To: <etay.meiri@gmail.com>, <help-gnu-emacs@gnu.org>
Subject: RE: Binding a key to an ibuffer filter
Date: Sat, 28 Feb 2009 11:54:30 -0800 [thread overview]
Message-ID: <001301c999de$5f444970$0200a8c0@us.oracle.com> (raw)
In-Reply-To: <94c16c01-05fe-49d7-bbf9-bca2fd8d3113@d19g2000yqb.googlegroups.com>
> > > I'm trying to bind a key to a filter in ibuffer-mode. I created a
> > > filter to display only C/C++ source files and it works ok
> > > manually (I can switch to it using
> > > ibuffer-switch-to-saved-filter). I also added
> > > the following code to .emacs:
> >
> > > (defun ibuffer-display-source-files ()
> > > (ibuffer-switch-to-saved-filters "c"))
> >
> > > (define-key ibuffer-mode-map [f1] 'ibuffer-display-source-files)
> >
> > > However, when I click F1 in ibuffer I get the following error:
> >
> > > Wrong type argument: commandp, ibuffer-display-source-files
> >
> > > Any idea?
> >
> > The error message is telling you that
> > `ibuffer-display-source-files' is not a
> > command. A command in Emacs is a function that has an
> > `interactive' spec. So do this:
> >
> > (defun ibuffer-display-source-files ()
> > (interactive) ; <==== MISSING
> > (ibuffer-switch-to-saved-filter "c"))
> >
> > Consider also adding a doc string, for your users. ;-)> Thanks a lot.
>
> Looks like some progress was made.
> Now when I click F1 I get an error: "Symbol's function definition is
> void: c"
>
> My filter definition is as follow:
> '(ibuffer-saved-filters (quote (("c" ((mode . c++-mode))) ("gnus" ((or
> (mode . message-mode) (mode . mail-mode) (mode . gnus-group-mode)
> (mode . gnus-summary-mode) (mode . gnus-article-mode))))
> ("programming" ((or (mode . emacs-lisp-mode) (mode . cperl-mode)
> (mode . c-mode) (mode . java-mode) (mode . idl-mode) (mode . lisp-
> mode)))))))
>
> And I'm calling the switch function using:
> (ibuffer-switch-to-saved-filters "c")
> Maybe I'm not passing the parameter correctly?
I'm not familiar with Ibuffer; perhaps someone else can help here. The error
message is telling you that `c' is not a function.
If someone else doesn't have a suggestion, try: (1) loading the source files
(e.g. ibuf-ext.el), not the byte-compiled files (e.g. ibuf-ext.elc), and then
(2) `M-x debug-on-entry RET ibuffer-switch-to-saved-filters'. Then step through
the debugger using `d' and `c', to see where the problem is.
prev parent reply other threads:[~2009-02-28 19:54 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-28 17:19 Binding a key to an ibuffer filter etay.meiri
2009-02-28 17:50 ` Drew Adams
[not found] ` <mailman.2094.1235843417.31690.help-gnu-emacs@gnu.org>
2009-02-28 18:49 ` etay.meiri
2009-02-28 19:54 ` Drew Adams [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
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='001301c999de$5f444970$0200a8c0@us.oracle.com' \
--to=drew.adams@oracle.com \
--cc=etay.meiri@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.
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).