From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Hikaru Ichijyo Newsgroups: gmane.emacs.help Subject: logical not condition in ibuffer config Date: Sun, 11 Mar 2018 15:17:52 -0500 Organization: UN Spacy Message-ID: <8xxk1ui1i4v.fsf@macross.sdf.jp> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1520799502 27844 195.159.176.226 (11 Mar 2018 20:18:22 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 11 Mar 2018 20:18:22 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Mar 11 21:18:18 2018 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ev7Q9-00078f-8F for geh-help-gnu-emacs@m.gmane.org; Sun, 11 Mar 2018 21:18:17 +0100 Original-Received: from localhost ([::1]:55492 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ev7SC-0005mt-7L for geh-help-gnu-emacs@m.gmane.org; Sun, 11 Mar 2018 16:20:24 -0400 X-Received: by 10.55.169.4 with SMTP id s4mr4373961qke.50.1520799472807; Sun, 11 Mar 2018 13:17:52 -0700 (PDT) Original-Path: usenet.stanford.edu!t24no2640626qtn.0!news-out.google.com!a13ni957qtd.1!nntp.google.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!post01.iad!fx37.iad.POSTED!not-for-mail Original-Newsgroups: gnu.emacs.help Cancel-Lock: sha1:i9PlM2TosHCsSPa6BOZU9BfkTKQ= Original-Lines: 60 Original-X-Complaints-To: http://abuse.usenetxs.com Original-NNTP-Posting-Date: Sun, 11 Mar 2018 20:17:52 UTC X-Received-Bytes: 2958 X-Received-Body-CRC: 898078416 Original-Xref: usenet.stanford.edu gnu.emacs.help:222054 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:116172 Archived-At: I've been setting up ibuffer to group my buffer listing into categories. I've encountered a situation where I may want to make an exception to one of the rules. This is my config: --8<---------------cut here---------------start------------->8--- ibuffer-saved-filter-groups (quote (("Default" ("IRC" (mode . erc-mode)) ("Web" (mode . w3m-mode)) ("Mail & News" (or (mode . message-mode) (mode . mail-mode) (mode . gnus-group-mode) (mode . gnus-summary-mode) (mode . gnus-article-mode))) ("Dired" (mode . dired-mode)) ("Text" (mode . text-mode)) ("HTML/CSS" (or (mode . html-mode) (mode . css-mode))) ("Config" (or (mode . conf-space-mode) (mode . conf-unix-mode) (mode . conf-xdefaults-mode))) ("Shell" (mode . shell-script-mode)) ("Perl" (mode . perl-mode)) ("Lisp & Emacs" (or (mode . emacs-lisp-mode) (mode . bookmark-bmenu-mode) (name . "^\\*Packages\\*$"))) ("Docs" (or (name . "^\\*info\\*$") (name . "^\\*Man ")))))) --8<---------------cut here---------------end--------------->8--- I am finding that the "Lisp & Emacs" group catches my bbdb buffer, because it is in Emacs-Lisp mode, but I would rather this went to Default, since I rarely edit it directly. So, I want to use a 'not' condition in these rules, to say, "Put anything in 'Lisp & Emacs' that's in emacs-lisp-mode, bookmark-bmenu-mode, or is named '*Packages*', except for buffers named 'bbdb'." The problem is, I'm not really sure how I can use "or" operators here to begin with, aside from seeing that they work, having based this config on common configurations I've seen in other people's ~/.emacs files. This whole section seems to define an alist. How does it get executed? When I try to use "and" or "not", it doesn't work, but for some reason, "or" does work. Something more is going on here beyond just an alist definition. I am still learning Emacs Lisp, obviously. Is there a way I can use other operators like "not" and "and" in this ibuffer setup? It would be useful for cases where you want a rule exception. -- He that would make his own liberty secure must guard even his enemy from oppression; for if he violates this duty, he establishes a precedent that will reach to himself. --Thomas Paine