annotate lisp/ibuffer.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents 10e66ac64b61
children 5fabe7db5188
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1 ;;; ibuffer.el --- operate on buffers like dired
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2
104543
da8b3e61b182 Use forward-line rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents: 102270
diff changeset
3 ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 105665
diff changeset
4 ;; 2009, 2010 Free Software Foundation, Inc.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
5
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
6 ;; Author: Colin Walters <walters@verbum.org>
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
7 ;; Maintainer: John Paul Wallington <jpw@gnu.org>
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
8 ;; Created: 8 Sep 2000
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
9 ;; Keywords: buffer, convenience
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
10
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
11 ;; This file is part of GNU Emacs.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
12
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94507
diff changeset
13 ;; GNU Emacs is free software: you can redistribute it and/or modify
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94507
diff changeset
14 ;; it under the terms of the GNU General Public License as published by
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94507
diff changeset
15 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94507
diff changeset
16 ;; (at your option) any later version.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
17
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94507
diff changeset
18 ;; GNU Emacs is distributed in the hope that it will be useful,
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94507
diff changeset
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94507
diff changeset
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94507
diff changeset
21 ;; GNU General Public License for more details.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
22
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
23 ;; You should have received a copy of the GNU General Public License
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94507
diff changeset
24 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
25
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
26 ;;; Commentary:
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
27
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
28 ;; ibuffer.el is an advanced replacement for the `buffer-menu' which
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
29 ;; is normally distributed with Emacs. Its interface is intended to
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
30 ;; be analogous to that of Dired.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
31
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
32 ;;; Code:
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
33
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
34 (eval-when-compile
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
35 (require 'cl)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
36 (require 'ibuf-macs)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
37 (require 'dired))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
38
49723
8e685f71f253 (toplevel): Don't require `font-lock';
John Paul Wallington <jpw@pobox.com>
parents: 49588
diff changeset
39 (require 'font-core)
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
40
65136
d66de68f18cb ibuffer.el: Move the `defvar's to the top level.
Juanma Barranquero <lekktu@gmail.com>
parents: 65089
diff changeset
41 ;; These come from ibuf-ext.el, which can not be require'd at compile time
d66de68f18cb ibuffer.el: Move the `defvar's to the top level.
Juanma Barranquero <lekktu@gmail.com>
parents: 65089
diff changeset
42 ;; because it has a recursive dependency on ibuffer.el
d66de68f18cb ibuffer.el: Move the `defvar's to the top level.
Juanma Barranquero <lekktu@gmail.com>
parents: 65089
diff changeset
43 (defvar ibuffer-auto-mode)
d66de68f18cb ibuffer.el: Move the `defvar's to the top level.
Juanma Barranquero <lekktu@gmail.com>
parents: 65089
diff changeset
44 (defvar ibuffer-cached-filter-formats)
d66de68f18cb ibuffer.el: Move the `defvar's to the top level.
Juanma Barranquero <lekktu@gmail.com>
parents: 65089
diff changeset
45 (defvar ibuffer-compiled-filter-formats)
d66de68f18cb ibuffer.el: Move the `defvar's to the top level.
Juanma Barranquero <lekktu@gmail.com>
parents: 65089
diff changeset
46 (defvar ibuffer-filter-format-alist)
d66de68f18cb ibuffer.el: Move the `defvar's to the top level.
Juanma Barranquero <lekktu@gmail.com>
parents: 65089
diff changeset
47 (defvar ibuffer-filter-group-kill-ring)
d66de68f18cb ibuffer.el: Move the `defvar's to the top level.
Juanma Barranquero <lekktu@gmail.com>
parents: 65089
diff changeset
48 (defvar ibuffer-filter-groups)
d66de68f18cb ibuffer.el: Move the `defvar's to the top level.
Juanma Barranquero <lekktu@gmail.com>
parents: 65089
diff changeset
49 (defvar ibuffer-filtering-qualifiers)
91782
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
50 (defvar ibuffer-header-line-format)
65136
d66de68f18cb ibuffer.el: Move the `defvar's to the top level.
Juanma Barranquero <lekktu@gmail.com>
parents: 65089
diff changeset
51 (defvar ibuffer-hidden-filter-groups)
d66de68f18cb ibuffer.el: Move the `defvar's to the top level.
Juanma Barranquero <lekktu@gmail.com>
parents: 65089
diff changeset
52 (defvar ibuffer-inline-columns)
d66de68f18cb ibuffer.el: Move the `defvar's to the top level.
Juanma Barranquero <lekktu@gmail.com>
parents: 65089
diff changeset
53 (defvar ibuffer-show-empty-filter-groups)
d66de68f18cb ibuffer.el: Move the `defvar's to the top level.
Juanma Barranquero <lekktu@gmail.com>
parents: 65089
diff changeset
54 (defvar ibuffer-tmp-hide-regexps)
d66de68f18cb ibuffer.el: Move the `defvar's to the top level.
Juanma Barranquero <lekktu@gmail.com>
parents: 65089
diff changeset
55 (defvar ibuffer-tmp-show-regexps)
65089
b4238c551ea7 (ibuffer-compile-make-eliding-form, ibuffer-check-formats): Use
Juanma Barranquero <lekktu@gmail.com>
parents: 64762
diff changeset
56
102210
d7624c39682b * ibuffer.el (ibuffer-redisplay-engine): Avoid "Mark set" message clobbering
Juanma Barranquero <lekktu@gmail.com>
parents: 100908
diff changeset
57 (declare-function ibuffer-mark-on-buffer "ibuf-ext"
86234
860a7a8e779e * progmodes/octave-mod.el (inferior-octave-send-list-and-digest):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 78492
diff changeset
58 (func &optional ibuffer-mark-on-buffer-mark group))
102210
d7624c39682b * ibuffer.el (ibuffer-redisplay-engine): Avoid "Mark set" message clobbering
Juanma Barranquero <lekktu@gmail.com>
parents: 100908
diff changeset
59 (declare-function ibuffer-generate-filter-groups "ibuf-ext"
86234
860a7a8e779e * progmodes/octave-mod.el (inferior-octave-send-list-and-digest):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 78492
diff changeset
60 (bmarklist &optional noempty nodefault))
860a7a8e779e * progmodes/octave-mod.el (inferior-octave-send-list-and-digest):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 78492
diff changeset
61 (declare-function ibuffer-format-filter-group-data "ibuf-ext" (filter))
860a7a8e779e * progmodes/octave-mod.el (inferior-octave-send-list-and-digest):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 78492
diff changeset
62
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
63 (defgroup ibuffer nil
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
64 "An advanced replacement for `buffer-menu'.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
65
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
66 Ibuffer allows you to operate on buffers in a manner much like Dired.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
67 Operations include sorting, marking by regular expression, and
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
68 the ability to filter the displayed buffers by various criteria."
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 57809
diff changeset
69 :version "22.1"
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
70 :group 'convenience)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
71
52325
5206a4b09125 (ibuffer-formats): Make name and size columns wider.
John Paul Wallington <jpw@pobox.com>
parents: 51741
diff changeset
72 (defcustom ibuffer-formats '((mark modified read-only " " (name 18 18 :left :elide)
5206a4b09125 (ibuffer-formats): Make name and size columns wider.
John Paul Wallington <jpw@pobox.com>
parents: 51741
diff changeset
73 " " (size 9 -1 :right)
72073
88cafd01cf48 (ibuffer-formats): Use left alignment for the mode
Dan Nicolaescu <dann@ics.uci.edu>
parents: 71510
diff changeset
74 " " (mode 16 16 :left :elide) " " filename-and-process)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
75 (mark " " (name 16 -1) " " filename))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
76 "A list of ways to display buffer lines.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
77
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
78 With Ibuffer, you are not limited to displaying just certain
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
79 attributes of a buffer such as size, name, and mode in a particular
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
80 order. Through this variable, you can completely customize and
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
81 control the appearance of an Ibuffer buffer. See also
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
82 `define-ibuffer-column', which allows you to define your own columns
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
83 for display.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
84
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
85 This variable has the form
42873
e4be1ae52e5c (toplevel, ibuffer-default-directory): Doc fixes.
Colin Walters <walters@gnu.org>
parents: 42871
diff changeset
86 ((COLUMN COLUMN ...) (COLUMN COLUMN ...) ...)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
87 Each element in `ibuffer-formats' should be a list containing COLUMN
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
88 specifiers. A COLUMN can be any of the following:
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
89
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
90 SYMBOL - A symbol naming the column. Predefined columns are:
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
91 mark modified read-only name size mode process filename
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
92 When you define your own columns using `define-ibuffer-column', just
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
93 use their name like the predefined columns here. This entry can
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
94 also be a function of two arguments, which should return a string.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
95 The first argument is the buffer object, and the second is the mark
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
96 on that buffer.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
97 or
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
98 \"STRING\" - A literal string to display.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
99 or
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
100 (SYMBOL MIN-SIZE MAX-SIZE &optional ALIGN ELIDE) - SYMBOL is a
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
101 symbol naming the column, and MIN-SIZE and MAX-SIZE are integers (or
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
102 functions of no arguments returning an integer) which constrict the
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
103 size of a column. If MAX-SIZE is -1, there is no upper bound. The
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
104 default values are 0 and -1, respectively. If MIN-SIZE is negative,
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
105 use the end of the string. The optional element ALIGN describes the
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
106 alignment of the column; it can be :left, :center or :right. The
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
107 optional element ELIDE describes whether or not to elide the column
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
108 if it is too long; valid values are :elide and nil. The default is
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
109 nil (don't elide).
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
110
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
111 Some example of valid entries in `ibuffer-formats', with
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
112 description (also, feel free to try them out, and experiment with your
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
113 own!):
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
114
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
115 (mark \" \" name)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
116 This format just displays the current mark (if any) and the name of
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
117 the buffer, separated by a space.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
118 (mark modified read-only \" \" (name 16 16 :left) \" \" (size 6 -1 :right))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
119 This format displays the current mark (if any), its modification and
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
120 read-only status, as well as the name of the buffer and its size. In
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
121 this format, the name is restricted to 16 characters (longer names
43104
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
122 will be truncated, and shorter names will be padded with spaces), and
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
123 the name is also aligned to the left. The size of the buffer will
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
124 be padded with spaces up to a minimum of six characters, but there is
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
125 no upper limit on its size. The size will also be aligned to the
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
126 right.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
127
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
128 Thus, if you wanted to use these two formats, add
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
129
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
130 (setq ibuffer-formats '((mark \" \" name)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
131 (mark modified read-only
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
132 (name 16 16 :left) (size 6 -1 :right))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
133
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
134 to your ~/.emacs file.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
135
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
136 Using \\[ibuffer-switch-format], you can rotate the display between
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
137 the specified formats in the list."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
138 :type '(repeat sexp)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
139 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
140
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
141 (defcustom ibuffer-always-compile-formats (featurep 'bytecomp)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
142 "If non-nil, then use the byte-compiler to optimize `ibuffer-formats'.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
143 This will increase the redisplay speed, at the cost of loading the
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
144 elisp byte-compiler."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
145 :type 'boolean
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
146 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
147
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
148 (defcustom ibuffer-fontification-alist
46770
06873cff56e8 (ibuffer-fontification-alist): Use `font-lock-constant-face' instead
Colin Walters <walters@gnu.org>
parents: 46682
diff changeset
149 `((10 buffer-read-only font-lock-constant-face)
68580
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
150 (15 (and buffer-file-name
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
151 (string-match ibuffer-compressed-file-name-regexp
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
152 buffer-file-name))
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
153 font-lock-doc-face)
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
154 (20 (string-match "^*" (buffer-name)) font-lock-keyword-face)
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
155 (25 (and (string-match "^ " (buffer-name))
47147
bee830f164b7 (ibuffer-update): Revert expansion of `caddr'.
John Paul Wallington <jpw@pobox.com>
parents: 47114
diff changeset
156 (null buffer-file-name))
bee830f164b7 (ibuffer-update): Revert expansion of `caddr'.
John Paul Wallington <jpw@pobox.com>
parents: 47114
diff changeset
157 italic)
68580
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
158 (30 (memq major-mode ibuffer-help-buffer-modes) font-lock-comment-face)
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
159 (35 (eq major-mode 'dired-mode) font-lock-function-name-face))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
160 "An alist describing how to fontify buffers.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
161 Each element should be of the form (PRIORITY FORM FACE), where
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
162 PRIORITY is an integer, FORM is an arbitrary form to evaluate in the
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
163 buffer, and FACE is the face to use for fontification. If the FORM
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
164 evaluates to non-nil, then FACE will be put on the buffer name. The
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
165 element with the highest PRIORITY takes precedence.
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
166
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
167 If you change this variable, you must kill the Ibuffer buffer and
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
168 recreate it for the change to take effect."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
169 :type '(repeat
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
170 (list (integer :tag "Priority")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
171 (sexp :tag "Test Form")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
172 face))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
173 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
174
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
175 (defcustom ibuffer-use-other-window nil
48343
35889dbb9b84 (ibuffer-use-other-window, ibuffer-use-header-line)
John Paul Wallington <jpw@pobox.com>
parents: 48058
diff changeset
176 "If non-nil, display Ibuffer in another window by default."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
177 :type 'boolean
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
178 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
179
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
180 (defcustom ibuffer-default-shrink-to-minimum-size nil
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
181 "If non-nil, minimize the size of the Ibuffer window by default."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
182 :type 'boolean
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
183 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
184 (defvar ibuffer-shrink-to-minimum-size nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
185
51074
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
186 (defcustom ibuffer-display-summary t
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
187 "If non-nil, summarize Ibuffer columns."
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
188 :type 'boolean
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
189 :group 'ibuffer)
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
190
43382
6d5695dd7639 (ibuffer-truncate-lines): New option.
Colin Walters <walters@gnu.org>
parents: 43249
diff changeset
191 (defcustom ibuffer-truncate-lines t
6d5695dd7639 (ibuffer-truncate-lines): New option.
Colin Walters <walters@gnu.org>
parents: 43249
diff changeset
192 "If non-nil, do not display continuation lines."
6d5695dd7639 (ibuffer-truncate-lines): New option.
Colin Walters <walters@gnu.org>
parents: 43249
diff changeset
193 :type 'boolean
6d5695dd7639 (ibuffer-truncate-lines): New option.
Colin Walters <walters@gnu.org>
parents: 43249
diff changeset
194 :group 'ibuffer)
6d5695dd7639 (ibuffer-truncate-lines): New option.
Colin Walters <walters@gnu.org>
parents: 43249
diff changeset
195
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
196 (defcustom ibuffer-case-fold-search case-fold-search
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
197 "If non-nil, ignore case when searching."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
198 :type 'boolean
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
199 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
200
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
201 (defcustom ibuffer-default-sorting-mode 'recency
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
202 "The criteria by which to sort the buffers.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
203
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
204 Note that this variable is local to each Ibuffer buffer. Thus, you
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
205 can have multiple Ibuffer buffers open, each with a different sorted
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
206 view of the buffers."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
207 :type '(choice (const :tag "Last view time" :value recency)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
208 (const :tag "Lexicographic" :value alphabetic)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
209 (const :tag "Buffer size" :value size)
87960
4693d30bd9c1 * ibuffer.el (ibuffer-default-sorting-mode): Add option to sort by
Dan Nicolaescu <dann@ics.uci.edu>
parents: 87869
diff changeset
210 (const :tag "File name" :value filename/process)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
211 (const :tag "Major mode" :value major-mode))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
212 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
213 (defvar ibuffer-sorting-mode nil)
94507
f72e4491c400 (ibuffer-last-sorting-mode): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 94501
diff changeset
214 (defvar ibuffer-last-sorting-mode nil)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
215
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
216 (defcustom ibuffer-default-sorting-reversep nil
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
217 "If non-nil, reverse the default sorting order."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
218 :type 'boolean
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
219 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
220 (defvar ibuffer-sorting-reversep nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
221
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
222 (defcustom ibuffer-elide-long-columns nil
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
223 "If non-nil, then elide column entries which exceed their max length."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
224 :type 'boolean
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
225 :group 'ibuffer)
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
226 (make-obsolete-variable 'ibuffer-elide-long-columns
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
227 "use the :elide argument of `ibuffer-formats'."
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
228 "22.1")
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
229
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
230 (defcustom ibuffer-eliding-string "..."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
231 "The string to use for eliding long columns."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
232 :type 'string
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
233 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
234
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
235 (defcustom ibuffer-maybe-show-predicates `(,(lambda (buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
236 (and (string-match "^ " (buffer-name buf))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
237 (null buffer-file-name))))
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
238 "A list of predicates for buffers to display conditionally.
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
239
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
240 A predicate can be a regexp or a function.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
241 If a regexp, then it will be matched against the buffer's name.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
242 If a function, it will be called with the buffer as an argument, and
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
243 should return non-nil if this buffer should be shown.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
244
57563
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
245 Viewing of buffers hidden because of these predicates may be customized
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 57809
diff changeset
246 via `ibuffer-default-display-maybe-show-predicates' and is toggled by
57563
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
247 giving a non-nil prefix argument to `ibuffer-update'.
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
248 Note that this specialized filtering occurs before real filtering."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
249 :type '(repeat (choice regexp function))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
250 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
251
57563
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
252 (defcustom ibuffer-default-display-maybe-show-predicates nil
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
253 "Non-nil means show buffers that match `ibuffer-maybe-show-predicates'."
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
254 :type 'boolean
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
255 :group 'ibuffer)
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
256
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
257 (defvar ibuffer-display-maybe-show-predicates nil)
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
258
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
259 (defvar ibuffer-current-format nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
260
45839
a3da6ddded28 (ibuffer-movement-cycle): New variable.
Colin Walters <walters@gnu.org>
parents: 45764
diff changeset
261 (defcustom ibuffer-movement-cycle t
a3da6ddded28 (ibuffer-movement-cycle): New variable.
Colin Walters <walters@gnu.org>
parents: 45764
diff changeset
262 "If non-nil, then forward and backwards movement commands cycle."
a3da6ddded28 (ibuffer-movement-cycle): New variable.
Colin Walters <walters@gnu.org>
parents: 45764
diff changeset
263 :type 'boolean
a3da6ddded28 (ibuffer-movement-cycle): New variable.
Colin Walters <walters@gnu.org>
parents: 45764
diff changeset
264 :group 'ibuffer)
a3da6ddded28 (ibuffer-movement-cycle): New variable.
Colin Walters <walters@gnu.org>
parents: 45764
diff changeset
265
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
266 (defcustom ibuffer-modified-char ?*
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
267 "The character to display for modified buffers."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
268 :type 'character
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
269 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
270
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
271 (defcustom ibuffer-read-only-char ?%
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
272 "The character to display for read-only buffers."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
273 :type 'character
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
274 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
275
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
276 (defcustom ibuffer-marked-char ?>
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
277 "The character to display for marked buffers."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
278 :type 'character
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
279 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
280
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
281 (defcustom ibuffer-deletion-char ?D
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
282 "The character to display for buffers marked for deletion."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
283 :type 'character
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
284 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
285
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
286 (defcustom ibuffer-expert nil
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
287 "If non-nil, don't ask for confirmation of \"dangerous\" operations."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
288 :type 'boolean
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
289 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
290
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
291 (defcustom ibuffer-view-ibuffer nil
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
292 "If non-nil, display the current Ibuffer buffer itself.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
293 Note that this has a drawback - the data about the current Ibuffer
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
294 buffer will most likely be inaccurate. This includes modification
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
295 state, size, etc."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
296 :type 'boolean
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
297 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
298
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
299 (defcustom ibuffer-always-show-last-buffer nil
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
300 "If non-nil, always display the previous buffer.
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
301 This variable takes precedence over filtering, and even
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
302 `ibuffer-never-show-predicates'."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
303 :type '(choice (const :tag "Always" :value t)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
304 (const :tag "Never" :value nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
305 (const :tag "Always except minibuffer" :value :nomini))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
306 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
307
55888
3d233a8d8d1f 2004-06-02 Romain Francoise <romain@orebokech.com>
John Paul Wallington <jpw@pobox.com>
parents: 55388
diff changeset
308 (defcustom ibuffer-jump-offer-only-visible-buffers nil
3d233a8d8d1f 2004-06-02 Romain Francoise <romain@orebokech.com>
John Paul Wallington <jpw@pobox.com>
parents: 55388
diff changeset
309 "If non-nil, only offer buffers visible in the Ibuffer buffer
3d233a8d8d1f 2004-06-02 Romain Francoise <romain@orebokech.com>
John Paul Wallington <jpw@pobox.com>
parents: 55388
diff changeset
310 in completion lists of the `ibuffer-jump-to-buffer' command."
3d233a8d8d1f 2004-06-02 Romain Francoise <romain@orebokech.com>
John Paul Wallington <jpw@pobox.com>
parents: 55388
diff changeset
311 :type 'boolean
3d233a8d8d1f 2004-06-02 Romain Francoise <romain@orebokech.com>
John Paul Wallington <jpw@pobox.com>
parents: 55388
diff changeset
312 :group 'ibuffer)
3d233a8d8d1f 2004-06-02 Romain Francoise <romain@orebokech.com>
John Paul Wallington <jpw@pobox.com>
parents: 55388
diff changeset
313
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
314 (defcustom ibuffer-use-header-line (boundp 'header-line-format)
48343
35889dbb9b84 (ibuffer-use-other-window, ibuffer-use-header-line)
John Paul Wallington <jpw@pobox.com>
parents: 48058
diff changeset
315 "If non-nil, display a header line containing current filters."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
316 :type 'boolean
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
317 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
318
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
319 (defcustom ibuffer-default-directory nil
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
320 "The default directory to use for a new Ibuffer buffer.
42873
e4be1ae52e5c (toplevel, ibuffer-default-directory): Doc fixes.
Colin Walters <walters@gnu.org>
parents: 42871
diff changeset
321 If nil, inherit the directory of the buffer in which `ibuffer' was
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
322 called. Otherwise, this variable should be a string naming a
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
323 directory, like `default-directory'."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
324 :type '(choice (const :tag "Inherit" :value nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
325 string)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
326 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
327
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
328 (defcustom ibuffer-help-buffer-modes
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
329 '(help-mode apropos-mode Info-mode Info-edit-mode)
44185
c4de5a5d6ecb (ibuffer-help-buffer-modes): New variable.
Colin Walters <walters@gnu.org>
parents: 44137
diff changeset
330 "List of \"Help\" major modes."
c4de5a5d6ecb (ibuffer-help-buffer-modes): New variable.
Colin Walters <walters@gnu.org>
parents: 44137
diff changeset
331 :type '(repeat function)
c4de5a5d6ecb (ibuffer-help-buffer-modes): New variable.
Colin Walters <walters@gnu.org>
parents: 44137
diff changeset
332 :group 'ibuffer)
c4de5a5d6ecb (ibuffer-help-buffer-modes): New variable.
Colin Walters <walters@gnu.org>
parents: 44137
diff changeset
333
68580
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
334 (defcustom ibuffer-compressed-file-name-regexp
70489
1fa9bcad4532 (ibuffer-compressed-file-name-regexp): Avoid `regexp-opt' and simplify
John Paul Wallington <jpw@pobox.com>
parents: 70408
diff changeset
335 "\\.\\(arj\\|bgz\\|bz2\\|gz\\|lzh\\|taz\\|tgz\\|zip\\|z\\)$"
68580
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
336 "Regexp to match compressed file names."
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
337 :type 'regexp
70408
cd97ab744c2d (ibuffer-compressed-file-name-regexp): Undo previous
Dan Nicolaescu <dann@ics.uci.edu>
parents: 70375
diff changeset
338 :group 'ibuffer)
68580
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
339
94029
97873d4b0d7a Move non-autoloaded define-obsolete-variable-alias calls for
Glenn Morris <rgm@gnu.org>
parents: 92226
diff changeset
340 (define-obsolete-variable-alias 'ibuffer-hooks 'ibuffer-hook "22.1")
97873d4b0d7a Move non-autoloaded define-obsolete-variable-alias calls for
Glenn Morris <rgm@gnu.org>
parents: 92226
diff changeset
341
46772
9bc85060942d (ibuffer-hooks): Rename to `ibuffer-hook'; Add defvaralias for
Colin Walters <walters@gnu.org>
parents: 46770
diff changeset
342 (defcustom ibuffer-hook nil
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
343 "Hook run when `ibuffer' is called."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
344 :type 'hook
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
345 :group 'ibuffer)
94029
97873d4b0d7a Move non-autoloaded define-obsolete-variable-alias calls for
Glenn Morris <rgm@gnu.org>
parents: 92226
diff changeset
346
97873d4b0d7a Move non-autoloaded define-obsolete-variable-alias calls for
Glenn Morris <rgm@gnu.org>
parents: 92226
diff changeset
347 (define-obsolete-variable-alias 'ibuffer-mode-hooks 'ibuffer-mode-hook "22.1")
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
348
46772
9bc85060942d (ibuffer-hooks): Rename to `ibuffer-hook'; Add defvaralias for
Colin Walters <walters@gnu.org>
parents: 46770
diff changeset
349 (defcustom ibuffer-mode-hook nil
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
350 "Hook run upon entry into `ibuffer-mode'."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
351 :type 'hook
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
352 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
353
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
354 (defcustom ibuffer-load-hook nil
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
355 "Hook run when Ibuffer is loaded."
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
356 :type 'hook
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
357 :group 'ibuffer)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
358
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
359 (defcustom ibuffer-marked-face 'font-lock-warning-face
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
360 "Face used for displaying marked buffers."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
361 :type 'face
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
362 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
363
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
364 (defcustom ibuffer-deletion-face 'font-lock-type-face
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
365 "Face used for displaying buffers marked for deletion."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
366 :type 'face
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
367 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
368
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
369 (defcustom ibuffer-title-face 'font-lock-type-face
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
370 "Face used for the title string."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
371 :type 'face
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
372 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
373
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
374 (defcustom ibuffer-filter-group-name-face 'bold
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
375 "Face used for displaying filtering group names."
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
376 :type 'face
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
377 :group 'ibuffer)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
378
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
379 (defcustom ibuffer-directory-abbrev-alist nil
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
380 "An alist of file name abbreviations like `directory-abbrev-alist'."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
381 :type '(repeat (cons :format "%v"
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
382 :value ("" . "")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
383 (regexp :tag "From")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
384 (regexp :tag "To")))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
385 :group 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
386
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
387
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
388 (defvar ibuffer-mode-map nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
389 (defvar ibuffer-mode-operate-map nil)
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
390 (defvar ibuffer-mode-groups-popup nil)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
391 (unless ibuffer-mode-map
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
392 (let ((map (make-sparse-keymap))
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
393 (operate-map (make-sparse-keymap "Operate"))
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
394 (groups-map (make-sparse-keymap "Filter Groups")))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
395 (define-key map (kbd "0") 'digit-argument)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
396 (define-key map (kbd "1") 'digit-argument)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
397 (define-key map (kbd "2") 'digit-argument)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
398 (define-key map (kbd "3") 'digit-argument)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
399 (define-key map (kbd "4") 'digit-argument)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
400 (define-key map (kbd "5") 'digit-argument)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
401 (define-key map (kbd "6") 'digit-argument)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
402 (define-key map (kbd "7") 'digit-argument)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
403 (define-key map (kbd "8") 'digit-argument)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
404 (define-key map (kbd "9") 'digit-argument)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
405
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
406 (define-key map (kbd "m") 'ibuffer-mark-forward)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
407 (define-key map (kbd "t") 'ibuffer-toggle-marks)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
408 (define-key map (kbd "u") 'ibuffer-unmark-forward)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
409 (define-key map (kbd "=") 'ibuffer-diff-with-file)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
410 (define-key map (kbd "j") 'ibuffer-jump-to-buffer)
55888
3d233a8d8d1f 2004-06-02 Romain Francoise <romain@orebokech.com>
John Paul Wallington <jpw@pobox.com>
parents: 55388
diff changeset
411 (define-key map (kbd "M-g") 'ibuffer-jump-to-buffer)
96956
a6f40f87513a (ibuffer-mode-map): Bind "M-s a C-s" to
Juri Linkov <juri@jurta.org>
parents: 96491
diff changeset
412 (define-key map (kbd "M-s a C-s") 'ibuffer-do-isearch)
a6f40f87513a (ibuffer-mode-map): Bind "M-s a C-s" to
Juri Linkov <juri@jurta.org>
parents: 96491
diff changeset
413 (define-key map (kbd "M-s a M-C-s") 'ibuffer-do-isearch-regexp)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
414 (define-key map (kbd "DEL") 'ibuffer-unmark-backward)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
415 (define-key map (kbd "M-DEL") 'ibuffer-unmark-all)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
416 (define-key map (kbd "* *") 'ibuffer-unmark-all)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
417 (define-key map (kbd "* M") 'ibuffer-mark-by-mode)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
418 (define-key map (kbd "* m") 'ibuffer-mark-modified-buffers)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
419 (define-key map (kbd "* u") 'ibuffer-mark-unsaved-buffers)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
420 (define-key map (kbd "* s") 'ibuffer-mark-special-buffers)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
421 (define-key map (kbd "* r") 'ibuffer-mark-read-only-buffers)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
422 (define-key map (kbd "* /") 'ibuffer-mark-dired-buffers)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
423 (define-key map (kbd "* e") 'ibuffer-mark-dissociated-buffers)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
424 (define-key map (kbd "* h") 'ibuffer-mark-help-buffers)
68580
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
425 (define-key map (kbd "* z") 'ibuffer-mark-compressed-file-buffers)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
426 (define-key map (kbd ".") 'ibuffer-mark-old-buffers)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
427
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
428 (define-key map (kbd "d") 'ibuffer-mark-for-delete)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
429 (define-key map (kbd "C-d") 'ibuffer-mark-for-delete-backwards)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
430 (define-key map (kbd "k") 'ibuffer-mark-for-delete)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
431 (define-key map (kbd "x") 'ibuffer-do-kill-on-deletion-marks)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
432
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
433 ;; immediate operations
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
434 (define-key map (kbd "n") 'ibuffer-forward-line)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
435 (define-key map (kbd "<down>") 'ibuffer-forward-line)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
436 (define-key map (kbd "SPC") 'forward-line)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
437 (define-key map (kbd "p") 'ibuffer-backward-line)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
438 (define-key map (kbd "<up>") 'ibuffer-backward-line)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
439 (define-key map (kbd "M-}") 'ibuffer-forward-next-marked)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
440 (define-key map (kbd "M-{") 'ibuffer-backwards-next-marked)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
441 (define-key map (kbd "l") 'ibuffer-redisplay)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
442 (define-key map (kbd "g") 'ibuffer-update)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
443 (define-key map "`" 'ibuffer-switch-format)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
444 (define-key map "-" 'ibuffer-add-to-tmp-hide)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
445 (define-key map "+" 'ibuffer-add-to-tmp-show)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
446 (define-key map "b" 'ibuffer-bury-buffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
447 (define-key map (kbd ",") 'ibuffer-toggle-sorting-mode)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
448 (define-key map (kbd "s i") 'ibuffer-invert-sorting)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
449 (define-key map (kbd "s a") 'ibuffer-do-sort-by-alphabetic)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
450 (define-key map (kbd "s v") 'ibuffer-do-sort-by-recency)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
451 (define-key map (kbd "s s") 'ibuffer-do-sort-by-size)
87960
4693d30bd9c1 * ibuffer.el (ibuffer-default-sorting-mode): Add option to sort by
Dan Nicolaescu <dann@ics.uci.edu>
parents: 87869
diff changeset
452 (define-key map (kbd "s f") 'ibuffer-do-sort-by-filename/process)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
453 (define-key map (kbd "s m") 'ibuffer-do-sort-by-major-mode)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
454
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
455 (define-key map (kbd "/ m") 'ibuffer-filter-by-mode)
46824
86fa1b4393a2 (ibuffer-mode-map): Added ibuffer-filter-by-used-mode.
Colin Walters <walters@gnu.org>
parents: 46772
diff changeset
456 (define-key map (kbd "/ M") 'ibuffer-filter-by-used-mode)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
457 (define-key map (kbd "/ n") 'ibuffer-filter-by-name)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
458 (define-key map (kbd "/ c") 'ibuffer-filter-by-content)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
459 (define-key map (kbd "/ e") 'ibuffer-filter-by-predicate)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
460 (define-key map (kbd "/ f") 'ibuffer-filter-by-filename)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
461 (define-key map (kbd "/ >") 'ibuffer-filter-by-size-gt)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
462 (define-key map (kbd "/ <") 'ibuffer-filter-by-size-lt)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
463 (define-key map (kbd "/ r") 'ibuffer-switch-to-saved-filters)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
464 (define-key map (kbd "/ a") 'ibuffer-add-saved-filters)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
465 (define-key map (kbd "/ x") 'ibuffer-delete-saved-filters)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
466 (define-key map (kbd "/ d") 'ibuffer-decompose-filter)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
467 (define-key map (kbd "/ s") 'ibuffer-save-filters)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
468 (define-key map (kbd "/ p") 'ibuffer-pop-filter)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
469 (define-key map (kbd "/ !") 'ibuffer-negate-filter)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
470 (define-key map (kbd "/ t") 'ibuffer-exchange-filters)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
471 (define-key map (kbd "/ TAB") 'ibuffer-exchange-filters)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
472 (define-key map (kbd "/ o") 'ibuffer-or-filter)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
473 (define-key map (kbd "/ g") 'ibuffer-filters-to-filter-group)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
474 (define-key map (kbd "/ P") 'ibuffer-pop-filter-group)
45161
91602250e999 (ibuffer-mode-map): Bind it. Add :enable guard around
Colin Walters <walters@gnu.org>
parents: 45129
diff changeset
475 (define-key map (kbd "/ D") 'ibuffer-decompose-filter-group)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
476 (define-key map (kbd "/ /") 'ibuffer-filter-disable)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
477
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
478 (define-key map (kbd "M-n") 'ibuffer-forward-filter-group)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
479 (define-key map (kbd "<right>") 'ibuffer-forward-filter-group)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
480 (define-key map (kbd "M-p") 'ibuffer-backward-filter-group)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
481 (define-key map (kbd "<left>") 'ibuffer-backward-filter-group)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
482 (define-key map (kbd "M-j") 'ibuffer-jump-to-filter-group)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
483 (define-key map (kbd "C-k") 'ibuffer-kill-line)
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
484 (define-key map (kbd "C-y") 'ibuffer-yank)
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
485 (define-key map (kbd "/ S") 'ibuffer-save-filter-groups)
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
486 (define-key map (kbd "/ R") 'ibuffer-switch-to-saved-filter-groups)
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
487 (define-key map (kbd "/ X") 'ibuffer-delete-saved-filter-groups)
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
488 (define-key map (kbd "/ \\") 'ibuffer-clear-filter-groups)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
489
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
490 (define-key map (kbd "q") 'ibuffer-quit)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
491 (define-key map (kbd "h") 'describe-mode)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
492 (define-key map (kbd "?") 'describe-mode)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
493
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
494 (define-key map (kbd "% n") 'ibuffer-mark-by-name-regexp)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
495 (define-key map (kbd "% m") 'ibuffer-mark-by-mode-regexp)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
496 (define-key map (kbd "% f") 'ibuffer-mark-by-file-name-regexp)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
497
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
498 (define-key map (kbd "C-t") 'ibuffer-visit-tags-table)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
499
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
500 (define-key map (kbd "|") 'ibuffer-do-shell-command-pipe)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
501 (define-key map (kbd "!") 'ibuffer-do-shell-command-file)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
502 (define-key map (kbd "~") 'ibuffer-do-toggle-modified)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
503 ;; marked operations
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
504 (define-key map (kbd "A") 'ibuffer-do-view)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
505 (define-key map (kbd "D") 'ibuffer-do-delete)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
506 (define-key map (kbd "E") 'ibuffer-do-eval)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
507 (define-key map (kbd "F") 'ibuffer-do-shell-command-file)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
508 (define-key map (kbd "I") 'ibuffer-do-query-replace-regexp)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
509 (define-key map (kbd "H") 'ibuffer-do-view-other-frame)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
510 (define-key map (kbd "N") 'ibuffer-do-shell-command-pipe-replace)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
511 (define-key map (kbd "M") 'ibuffer-do-toggle-modified)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
512 (define-key map (kbd "O") 'ibuffer-do-occur)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
513 (define-key map (kbd "P") 'ibuffer-do-print)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
514 (define-key map (kbd "Q") 'ibuffer-do-query-replace)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
515 (define-key map (kbd "R") 'ibuffer-do-rename-uniquely)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
516 (define-key map (kbd "S") 'ibuffer-do-save)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
517 (define-key map (kbd "T") 'ibuffer-do-toggle-read-only)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
518 (define-key map (kbd "U") 'ibuffer-do-replace-regexp)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
519 (define-key map (kbd "V") 'ibuffer-do-revert)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
520 (define-key map (kbd "W") 'ibuffer-do-view-and-eval)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
521 (define-key map (kbd "X") 'ibuffer-do-shell-command-pipe)
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
522
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
523 (define-key map (kbd "k") 'ibuffer-do-kill-lines)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
524 (define-key map (kbd "w") 'ibuffer-copy-filename-as-kill)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
525
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
526 (define-key map (kbd "RET") 'ibuffer-visit-buffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
527 (define-key map (kbd "e") 'ibuffer-visit-buffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
528 (define-key map (kbd "f") 'ibuffer-visit-buffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
529 (define-key map (kbd "C-x C-f") 'ibuffer-find-file)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
530 (define-key map (kbd "o") 'ibuffer-visit-buffer-other-window)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
531 (define-key map (kbd "C-o") 'ibuffer-visit-buffer-other-window-noselect)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
532 (define-key map (kbd "M-o") 'ibuffer-visit-buffer-1-window)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
533 (define-key map (kbd "v") 'ibuffer-do-view)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
534 (define-key map (kbd "C-x v") 'ibuffer-do-view-horizontally)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
535 (define-key map (kbd "C-c C-a") 'ibuffer-auto-mode)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
536 (define-key map (kbd "C-x 4 RET") 'ibuffer-visit-buffer-other-window)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
537 (define-key map (kbd "C-x 5 RET") 'ibuffer-visit-buffer-other-frame)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
538
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
539 (define-key map [menu-bar view]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
540 (cons "View" (make-sparse-keymap "View")))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
541
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
542 (define-key-after map [menu-bar view visit-buffer]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
543 '(menu-item "View this buffer" ibuffer-visit-buffer))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
544 (define-key-after map [menu-bar view visit-buffer-other-window]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
545 '(menu-item "View (other window)" ibuffer-visit-buffer-other-window))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
546 (define-key-after map [menu-bar view visit-buffer-other-frame]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
547 '(menu-item "View (other frame)" ibuffer-visit-buffer-other-frame))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
548 (define-key-after map [menu-bar view ibuffer-update]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
549 '(menu-item "Update" ibuffer-update
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
550 :help "Regenerate the list of buffers"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
551 (define-key-after map [menu-bar view switch-format]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
552 '(menu-item "Switch display format" ibuffer-switch-format
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
553 :help "Toggle between available values of `ibuffer-formats'"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
554
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
555 (define-key-after map [menu-bar view dashes]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
556 '("--"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
557
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
558 (define-key-after map [menu-bar view sort]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
559 (cons "Sort" (make-sparse-keymap "Sort")))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
560
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
561 (define-key-after map [menu-bar view sort do-sort-by-major-mode]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
562 '(menu-item "Sort by major mode" ibuffer-do-sort-by-major-mode))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
563 (define-key-after map [menu-bar view sort do-sort-by-size]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
564 '(menu-item "Sort by buffer size" ibuffer-do-sort-by-size))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
565 (define-key-after map [menu-bar view sort do-sort-by-alphabetic]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
566 '(menu-item "Sort lexicographically" ibuffer-do-sort-by-alphabetic
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
567 :help "Sort by the alphabetic order of buffer name"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
568 (define-key-after map [menu-bar view sort do-sort-by-recency]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
569 '(menu-item "Sort by view time" ibuffer-do-sort-by-recency
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
570 :help "Sort by the last time the buffer was displayed"))
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
571 (define-key-after map [menu-bar view sort dashes]
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
572 '("--"))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
573 (define-key-after map [menu-bar view sort invert-sorting]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
574 '(menu-item "Reverse sorting order" ibuffer-invert-sorting))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
575 (define-key-after map [menu-bar view sort toggle-sorting-mode]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
576 '(menu-item "Switch sorting mode" ibuffer-toggle-sorting-mode
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
577 :help "Switch between the various sorting criteria"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
578
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
579 (define-key-after map [menu-bar view filter]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
580 (cons "Filter" (make-sparse-keymap "Filter")))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
581
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
582 (define-key-after map [menu-bar view filter filter-disable]
45213
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
583 '(menu-item "Disable all filtering" ibuffer-filter-disable
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
584 :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
585 (define-key-after map [menu-bar view filter filter-by-mode]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
586 '(menu-item "Add filter by major mode..." ibuffer-filter-by-mode))
46824
86fa1b4393a2 (ibuffer-mode-map): Added ibuffer-filter-by-used-mode.
Colin Walters <walters@gnu.org>
parents: 46772
diff changeset
587 (define-key-after map [menu-bar view filter filter-by-mode]
86fa1b4393a2 (ibuffer-mode-map): Added ibuffer-filter-by-used-mode.
Colin Walters <walters@gnu.org>
parents: 46772
diff changeset
588 '(menu-item "Add filter by major mode in use..." ibuffer-filter-by-used-mode))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
589 (define-key-after map [menu-bar view filter filter-by-name]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
590 '(menu-item "Add filter by buffer name..." ibuffer-filter-by-name))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
591 (define-key-after map [menu-bar view filter filter-by-filename]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
592 '(menu-item "Add filter by filename..." ibuffer-filter-by-filename))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
593 (define-key-after map [menu-bar view filter filter-by-size-lt]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
594 '(menu-item "Add filter by size less than..." ibuffer-filter-by-size-lt))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
595 (define-key-after map [menu-bar view filter filter-by-size-gt]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
596 '(menu-item "Add filter by size greater than..." ibuffer-filter-by-size-gt))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
597 (define-key-after map [menu-bar view filter filter-by-content]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
598 '(menu-item "Add filter by content (regexp)..." ibuffer-filter-by-content))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
599 (define-key-after map [menu-bar view filter filter-by-predicate]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
600 '(menu-item "Add filter by Lisp predicate..." ibuffer-filter-by-predicate))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
601 (define-key-after map [menu-bar view filter pop-filter]
45213
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
602 '(menu-item "Remove top filter" ibuffer-pop-filter
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
603 :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
604 (define-key-after map [menu-bar view filter or-filter]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
605 '(menu-item "OR top two filters" ibuffer-or-filter
45220
f7c52a0eaf23 Refine previous change.
Colin Walters <walters@gnu.org>
parents: 45213
diff changeset
606 :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers
f7c52a0eaf23 Refine previous change.
Colin Walters <walters@gnu.org>
parents: 45213
diff changeset
607 (cdr ibuffer-filtering-qualifiers))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
608 :help "Create a new filter which is the logical OR of the top two filters"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
609 (define-key-after map [menu-bar view filter negate-filter]
45213
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
610 '(menu-item "Negate top filter" ibuffer-negate-filter
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
611 :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
612 (define-key-after map [menu-bar view filter decompose-filter]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
613 '(menu-item "Decompose top filter" ibuffer-decompose-filter
45220
f7c52a0eaf23 Refine previous change.
Colin Walters <walters@gnu.org>
parents: 45213
diff changeset
614 :enable (and (featurep 'ibuf-ext) (memq (car ibuffer-filtering-qualifiers) '(or saved not)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
615 :help "Break down a complex filter like OR or NOT"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
616 (define-key-after map [menu-bar view filter exchange-filters]
45213
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
617 '(menu-item "Swap top two filters" ibuffer-exchange-filters
45220
f7c52a0eaf23 Refine previous change.
Colin Walters <walters@gnu.org>
parents: 45213
diff changeset
618 :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers
f7c52a0eaf23 Refine previous change.
Colin Walters <walters@gnu.org>
parents: 45213
diff changeset
619 (cdr ibuffer-filtering-qualifiers))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
620 (define-key-after map [menu-bar view filter save-filters]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
621 '(menu-item "Save current filters permanently..." ibuffer-save-filters
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
622 :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
623 :help "Use a mnemnonic name to store current filter stack"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
624 (define-key-after map [menu-bar view filter switch-to-saved-filters]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
625 '(menu-item "Restore permanently saved filters..." ibuffer-switch-to-saved-filters
45213
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
626 :enable (and (featurep 'ibuf-ext) ibuffer-saved-filters)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
627 :help "Replace current filters with a saved stack"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
628 (define-key-after map [menu-bar view filter add-saved-filters]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
629 '(menu-item "Add to permanently saved filters..." ibuffer-add-saved-filters
45213
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
630 :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
631 :help "Include already saved stack with current filters"))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
632 (define-key-after map [menu-bar view filter delete-saved-filters]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
633 '(menu-item "Delete permanently saved filters..."
45213
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
634 ibuffer-delete-saved-filters
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
635 :enable (and (featurep 'ibuf-ext) ibuffer-saved-filters)))
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
636
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
637 ;; Filter groups
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
638
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
639 (define-key-after groups-map [filters-to-filter-group]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
640 '(menu-item "Create filter group from current filters..."
45161
91602250e999 (ibuffer-mode-map): Bind it. Add :enable guard around
Colin Walters <walters@gnu.org>
parents: 45129
diff changeset
641 ibuffer-filters-to-filter-group
91602250e999 (ibuffer-mode-map): Bind it. Add :enable guard around
Colin Walters <walters@gnu.org>
parents: 45129
diff changeset
642 :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers)))
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
643 (define-key-after groups-map [forward-filter-group]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
644 '(menu-item "Move point to the next filter group"
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
645 ibuffer-forward-filter-group))
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
646 (define-key-after groups-map [backward-filter-group]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
647 '(menu-item "Move point to the previous filter group"
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
648 ibuffer-backward-filter-group))
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
649 (define-key-after groups-map [jump-to-filter-group]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
650 '(menu-item "Move point to a specific filter group..."
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
651 ibuffer-jump-to-filter-group))
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
652 (define-key-after groups-map [kill-filter-group]
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
653 '(menu-item "Kill filter group named..."
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
654 ibuffer-kill-filter-group
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
655 :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)))
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
656 (define-key-after groups-map [yank-filter-group]
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
657 '(menu-item "Yank last killed filter group before..."
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
658 ibuffer-yank-filter-group
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
659 :enable (and (featurep 'ibuf-ext) ibuffer-filter-group-kill-ring)))
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
660 (define-key-after groups-map [pop-filter-group]
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
661 '(menu-item "Remove top filter group"
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
662 ibuffer-pop-filter-group
45161
91602250e999 (ibuffer-mode-map): Bind it. Add :enable guard around
Colin Walters <walters@gnu.org>
parents: 45129
diff changeset
663 :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)))
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
664 (define-key-after groups-map [clear-filter-groups]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
665 '(menu-item "Remove all filter groups"
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
666 ibuffer-clear-filter-groups
45161
91602250e999 (ibuffer-mode-map): Bind it. Add :enable guard around
Colin Walters <walters@gnu.org>
parents: 45129
diff changeset
667 :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)))
91602250e999 (ibuffer-mode-map): Bind it. Add :enable guard around
Colin Walters <walters@gnu.org>
parents: 45129
diff changeset
668 (define-key-after groups-map [pop-filter-group]
91602250e999 (ibuffer-mode-map): Bind it. Add :enable guard around
Colin Walters <walters@gnu.org>
parents: 45129
diff changeset
669 '(menu-item "Decompose filter group..."
91602250e999 (ibuffer-mode-map): Bind it. Add :enable guard around
Colin Walters <walters@gnu.org>
parents: 45129
diff changeset
670 ibuffer-pop-filter-group
91602250e999 (ibuffer-mode-map): Bind it. Add :enable guard around
Colin Walters <walters@gnu.org>
parents: 45129
diff changeset
671 :help "\"Unmake\" a filter group"
91602250e999 (ibuffer-mode-map): Bind it. Add :enable guard around
Colin Walters <walters@gnu.org>
parents: 45129
diff changeset
672 :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)))
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
673 (define-key-after groups-map [save-filter-groups]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
674 '(menu-item "Save current filter groups permanently..."
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
675 ibuffer-save-filter-groups
45213
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
676 :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
677 :help "Use a mnemnonic name to store current filter groups"))
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
678 (define-key-after groups-map [switch-to-saved-filter-groups]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
679 '(menu-item "Restore permanently saved filters..."
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
680 ibuffer-switch-to-saved-filter-groups
45213
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
681 :enable (and (featurep 'ibuf-ext) ibuffer-saved-filter-groups)
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
682 :help "Replace current filters with a saved stack"))
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
683 (define-key-after groups-map [delete-saved-filter-groups]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
684 '(menu-item "Delete permanently saved filter groups..."
45213
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
685 ibuffer-delete-saved-filter-groups
162082d00c8f (ibuffer-mode-map): Add :enable guards for `ibuffer-filter-disable',
Colin Walters <walters@gnu.org>
parents: 45161
diff changeset
686 :enable (and (featurep 'ibuf-ext) ibuffer-saved-filter-groups)))
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
687 (define-key-after groups-map [set-filter-groups-by-mode]
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
688 '(menu-item "Set current filter groups to filter by mode"
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
689 ibuffer-set-filter-groups-by-mode))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
690
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
691 (define-key-after map [menu-bar view filter-groups]
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
692 (cons "Filter Groups" groups-map))
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
693
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
694 (define-key-after map [menu-bar view dashes2]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
695 '("--"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
696 (define-key-after map [menu-bar view diff-with-file]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
697 '(menu-item "Diff with file" ibuffer-diff-with-file
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
698 :help "View the differences between this buffer and its file"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
699 (define-key-after map [menu-bar view auto-mode]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
700 '(menu-item "Toggle Auto Mode" ibuffer-auto-mode
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
701 :help "Attempt to automatically update the Ibuffer buffer"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
702 (define-key-after map [menu-bar view customize]
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
703 '(menu-item "Customize Ibuffer" ibuffer-customize
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
704 :help "Use Custom to customize Ibuffer"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
705
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
706 (define-key-after map [menu-bar mark]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
707 (cons "Mark" (make-sparse-keymap "Mark")))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
708
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
709 (define-key-after map [menu-bar mark toggle-marks]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
710 '(menu-item "Toggle marks" ibuffer-toggle-marks
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
711 :help "Unmark marked buffers, and mark unmarked buffers"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
712 (define-key-after map [menu-bar mark mark-forward]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
713 '(menu-item "Mark" ibuffer-mark-forward
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
714 :help "Mark the buffer at point"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
715 (define-key-after map [menu-bar mark unmark-forward]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
716 '(menu-item "Unmark" ibuffer-unmark-forward
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
717 :help "Unmark the buffer at point"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
718 (define-key-after map [menu-bar mark mark-by-mode]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
719 '(menu-item "Mark by mode..." ibuffer-mark-by-mode
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
720 :help "Mark all buffers in a particular major mode"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
721 (define-key-after map [menu-bar mark mark-modified-buffers]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
722 '(menu-item "Mark modified buffers" ibuffer-mark-modified-buffers
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
723 :help "Mark all buffers which have been modified"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
724 (define-key-after map [menu-bar mark mark-unsaved-buffers]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
725 '(menu-item "Mark unsaved buffers" ibuffer-mark-unsaved-buffers
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
726 :help "Mark all buffers which have a file and are modified"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
727 (define-key-after map [menu-bar mark mark-read-only-buffers]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
728 '(menu-item "Mark read-only buffers" ibuffer-mark-read-only-buffers
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
729 :help "Mark all buffers which are read-only"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
730 (define-key-after map [menu-bar mark mark-special-buffers]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
731 '(menu-item "Mark special buffers" ibuffer-mark-special-buffers
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
732 :help "Mark all buffers whose name begins with a *"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
733 (define-key-after map [menu-bar mark mark-dired-buffers]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
734 '(menu-item "Mark dired buffers" ibuffer-mark-dired-buffers
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
735 :help "Mark buffers in dired-mode"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
736 (define-key-after map [menu-bar mark mark-dissociated-buffers]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
737 '(menu-item "Mark dissociated buffers" ibuffer-mark-dissociated-buffers
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
738 :help "Mark buffers with a non-existent associated file"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
739 (define-key-after map [menu-bar mark mark-help-buffers]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
740 '(menu-item "Mark help buffers" ibuffer-mark-help-buffers
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
741 :help "Mark buffers in help-mode"))
68580
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
742 (define-key-after map [menu-bar mark mark-compressed-file-buffers]
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
743 '(menu-item "Mark compressed file buffers" ibuffer-mark-compressed-file-buffers
43619387ab52 (ibuffer-compressed-file-name-regexp): New defcustom.
John Paul Wallington <jpw@pobox.com>
parents: 66739
diff changeset
744 :help "Mark buffers which have a file that is compressed"))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
745 (define-key-after map [menu-bar mark mark-old-buffers]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
746 '(menu-item "Mark old buffers" ibuffer-mark-old-buffers
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
747 :help "Mark buffers which have not been viewed recently"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
748 (define-key-after map [menu-bar mark unmark-all]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
749 '(menu-item "Unmark All" ibuffer-unmark-all))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
750
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
751 (define-key-after map [menu-bar mark dashes]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
752 '("--"))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
753
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
754 (define-key-after map [menu-bar mark mark-by-name-regexp]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
755 '(menu-item "Mark by buffer name (regexp)..." ibuffer-mark-by-name-regexp
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
756 :help "Mark buffers whose name matches a regexp"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
757 (define-key-after map [menu-bar mark mark-by-mode-regexp]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
758 '(menu-item "Mark by major mode (regexp)..." ibuffer-mark-by-mode-regexp
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
759 :help "Mark buffers whose major mode name matches a regexp"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
760 (define-key-after map [menu-bar mark mark-by-file-name-regexp]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
761 '(menu-item "Mark by file name (regexp)..." ibuffer-mark-by-file-name-regexp
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
762 :help "Mark buffers whose file name matches a regexp"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
763
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
764 ;; Operate map is added later
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
765
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
766 (define-key-after operate-map [do-view]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
767 '(menu-item "View" ibuffer-do-view))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
768 (define-key-after operate-map [do-view-other-frame]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
769 '(menu-item "View (separate frame)" ibuffer-do-view-other-frame))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
770 (define-key-after operate-map [do-save]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
771 '(menu-item "Save" ibuffer-do-save))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
772 (define-key-after operate-map [do-replace-regexp]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
773 '(menu-item "Replace (regexp)..." ibuffer-do-replace-regexp
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
774 :help "Replace text inside marked buffers"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
775 (define-key-after operate-map [do-query-replace]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
776 '(menu-item "Query Replace..." ibuffer-do-query-replace
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
777 :help "Replace text in marked buffers, asking each time"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
778 (define-key-after operate-map [do-query-replace-regexp]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
779 '(menu-item "Query Replace (regexp)..." ibuffer-do-query-replace-regexp
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
780 :help "Replace text in marked buffers by regexp, asking each time"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
781 (define-key-after operate-map [do-print]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
782 '(menu-item "Print" ibuffer-do-print))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
783 (define-key-after operate-map [do-toggle-modified]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
784 '(menu-item "Toggle modification flag" ibuffer-do-toggle-modified))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
785 (define-key-after operate-map [do-revert]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
786 '(menu-item "Revert" ibuffer-do-revert
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
787 :help "Revert marked buffers to their associated file"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
788 (define-key-after operate-map [do-rename-uniquely]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
789 '(menu-item "Rename Uniquely" ibuffer-do-rename-uniquely
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
790 :help "Rename marked buffers to a new, unique name"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
791 (define-key-after operate-map [do-delete]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
792 '(menu-item "Kill" ibuffer-do-delete))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
793 (define-key-after operate-map [do-occur]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
794 '(menu-item "List lines matching..." ibuffer-do-occur
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
795 :help "View all lines in marked buffers matching a regexp"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
796 (define-key-after operate-map [do-shell-command-pipe]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
797 '(menu-item "Pipe to shell command..." ibuffer-do-shell-command-pipe
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
798 :help "For each marked buffer, send its contents to a shell command"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
799 (define-key-after operate-map [do-shell-command-pipe-replace]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
800 '(menu-item "Pipe to shell command (replace)..." ibuffer-do-shell-command-pipe-replace
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
801 :help "For each marked buffer, replace its contents with output of shell command"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
802 (define-key-after operate-map [do-shell-command-file]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
803 '(menu-item "Shell command on buffer's file..." ibuffer-do-shell-command-file
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
804 :help "For each marked buffer, run a shell command with its file as argument"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
805 (define-key-after operate-map [do-eval]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
806 '(menu-item "Eval..." ibuffer-do-eval
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
807 :help "Evaluate a Lisp form in each marked buffer"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
808 (define-key-after operate-map [do-view-and-eval]
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
809 '(menu-item "Eval (viewing buffer)..." ibuffer-do-view-and-eval
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
810 :help "Evaluate a Lisp form in each marked buffer while viewing it"))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
811
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
812 (setq ibuffer-mode-map map
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
813 ibuffer-mode-operate-map operate-map
45161
91602250e999 (ibuffer-mode-map): Bind it. Add :enable guard around
Colin Walters <walters@gnu.org>
parents: 45129
diff changeset
814 ibuffer-mode-groups-popup (copy-keymap groups-map))))
91602250e999 (ibuffer-mode-map): Bind it. Add :enable guard around
Colin Walters <walters@gnu.org>
parents: 45129
diff changeset
815
91602250e999 (ibuffer-mode-map): Bind it. Add :enable guard around
Colin Walters <walters@gnu.org>
parents: 45129
diff changeset
816 (define-key ibuffer-mode-groups-popup [kill-filter-group]
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
817 '(menu-item "Kill filter group"
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
818 ibuffer-kill-line
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
819 :enable (and (featurep 'ibuf-ext)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
820 ibuffer-filter-groups)))
45687
434d9f56eab8 (ibuffer-category-alist): Delete.
Colin Walters <walters@gnu.org>
parents: 45443
diff changeset
821 (define-key ibuffer-mode-groups-popup [yank-filter-group]
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
822 '(menu-item "Yank last killed filter group"
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
823 ibuffer-yank
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
824 :enable (and (featurep 'ibuf-ext)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
825 ibuffer-filter-group-kill-ring)))
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
826
50708
c2c47be7d704 (ibuffer-name-map, ibuffer-mode-name-map)
John Paul Wallington <jpw@pobox.com>
parents: 50448
diff changeset
827 (defvar ibuffer-name-map
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
828 (let ((map (make-sparse-keymap)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
829 (define-key map [(mouse-1)] 'ibuffer-mouse-toggle-mark)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
830 (define-key map [(mouse-2)] 'ibuffer-mouse-visit-buffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
831 (define-key map [down-mouse-3] 'ibuffer-mouse-popup-menu)
50708
c2c47be7d704 (ibuffer-name-map, ibuffer-mode-name-map)
John Paul Wallington <jpw@pobox.com>
parents: 50448
diff changeset
832 map))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
833
87960
4693d30bd9c1 * ibuffer.el (ibuffer-default-sorting-mode): Add option to sort by
Dan Nicolaescu <dann@ics.uci.edu>
parents: 87869
diff changeset
834 (defvar ibuffer-filename/process-header-map
4693d30bd9c1 * ibuffer.el (ibuffer-default-sorting-mode): Add option to sort by
Dan Nicolaescu <dann@ics.uci.edu>
parents: 87869
diff changeset
835 (let ((map (make-sparse-keymap)))
4693d30bd9c1 * ibuffer.el (ibuffer-default-sorting-mode): Add option to sort by
Dan Nicolaescu <dann@ics.uci.edu>
parents: 87869
diff changeset
836 (define-key map [(mouse-1)] 'ibuffer-do-sort-by-filename/process)
4693d30bd9c1 * ibuffer.el (ibuffer-default-sorting-mode): Add option to sort by
Dan Nicolaescu <dann@ics.uci.edu>
parents: 87869
diff changeset
837 map))
4693d30bd9c1 * ibuffer.el (ibuffer-default-sorting-mode): Add option to sort by
Dan Nicolaescu <dann@ics.uci.edu>
parents: 87869
diff changeset
838
50708
c2c47be7d704 (ibuffer-name-map, ibuffer-mode-name-map)
John Paul Wallington <jpw@pobox.com>
parents: 50448
diff changeset
839 (defvar ibuffer-mode-name-map
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
840 (let ((map (make-sparse-keymap)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
841 (define-key map [(mouse-2)] 'ibuffer-mouse-filter-by-mode)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
842 (define-key map (kbd "RET") 'ibuffer-interactive-filter-by-mode)
50708
c2c47be7d704 (ibuffer-name-map, ibuffer-mode-name-map)
John Paul Wallington <jpw@pobox.com>
parents: 50448
diff changeset
843 map))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
844
69764
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
845 (defvar ibuffer-name-header-map
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
846 (let ((map (make-sparse-keymap)))
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
847 (define-key map [(mouse-1)] 'ibuffer-do-sort-by-alphabetic)
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
848 map))
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
849
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
850 (defvar ibuffer-size-header-map
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
851 (let ((map (make-sparse-keymap)))
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
852 (define-key map [(mouse-1)] 'ibuffer-do-sort-by-size)
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
853 map))
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
854
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
855 (defvar ibuffer-mode-header-map
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
856 (let ((map (make-sparse-keymap)))
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
857 (define-key map [(mouse-1)] 'ibuffer-do-sort-by-major-mode)
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
858 map))
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
859
50708
c2c47be7d704 (ibuffer-name-map, ibuffer-mode-name-map)
John Paul Wallington <jpw@pobox.com>
parents: 50448
diff changeset
860 (defvar ibuffer-mode-filter-group-map
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
861 (let ((map (make-sparse-keymap)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
862 (define-key map [(mouse-1)] 'ibuffer-mouse-toggle-mark)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
863 (define-key map [(mouse-2)] 'ibuffer-mouse-toggle-filter-group)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
864 (define-key map (kbd "RET") 'ibuffer-toggle-filter-group)
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
865 (define-key map [down-mouse-3] 'ibuffer-mouse-popup-menu)
50708
c2c47be7d704 (ibuffer-name-map, ibuffer-mode-name-map)
John Paul Wallington <jpw@pobox.com>
parents: 50448
diff changeset
866 map))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
867
54813
59f2a23a44d1 (ibuffer-delete-window-on-quit): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 52401
diff changeset
868 (defvar ibuffer-restore-window-config-on-quit nil
59f2a23a44d1 (ibuffer-delete-window-on-quit): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 52401
diff changeset
869 "If non-nil, restore previous window configuration upon exiting `ibuffer'.")
59f2a23a44d1 (ibuffer-delete-window-on-quit): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 52401
diff changeset
870
59f2a23a44d1 (ibuffer-delete-window-on-quit): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 52401
diff changeset
871 (defvar ibuffer-prev-window-config nil
59f2a23a44d1 (ibuffer-delete-window-on-quit): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 52401
diff changeset
872 "Window configuration before starting Ibuffer.")
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
873
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
874 (defvar ibuffer-did-modification nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
875
65089
b4238c551ea7 (ibuffer-compile-make-eliding-form, ibuffer-check-formats): Use
Juanma Barranquero <lekktu@gmail.com>
parents: 64762
diff changeset
876 (defvar ibuffer-compiled-formats nil)
b4238c551ea7 (ibuffer-compile-make-eliding-form, ibuffer-check-formats): Use
Juanma Barranquero <lekktu@gmail.com>
parents: 64762
diff changeset
877 (defvar ibuffer-cached-formats nil)
b4238c551ea7 (ibuffer-compile-make-eliding-form, ibuffer-check-formats): Use
Juanma Barranquero <lekktu@gmail.com>
parents: 64762
diff changeset
878 (defvar ibuffer-cached-eliding-string nil)
b4238c551ea7 (ibuffer-compile-make-eliding-form, ibuffer-check-formats): Use
Juanma Barranquero <lekktu@gmail.com>
parents: 64762
diff changeset
879 (defvar ibuffer-cached-elide-long-columns 0)
b4238c551ea7 (ibuffer-compile-make-eliding-form, ibuffer-check-formats): Use
Juanma Barranquero <lekktu@gmail.com>
parents: 64762
diff changeset
880
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
881 (defvar ibuffer-sorting-functions-alist nil
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
882 "An alist of functions which describe how to sort buffers.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
883
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
884 Note: You most likely do not want to modify this variable directly;
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
885 use `define-ibuffer-sorter' instead.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
886
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
887 The alist elements are constructed like (NAME DESCRIPTION FUNCTION)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
888 Where NAME is a symbol describing the sorting method, DESCRIPTION is a
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
889 short string which will be displayed in the minibuffer and menu, and
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
890 FUNCTION is a function of two arguments, which will be the buffers to
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
891 compare.")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
892
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
893 ;;; Utility functions
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
894 (defun ibuffer-columnize-and-insert-list (list &optional pad-width)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
895 "Insert LIST into the current buffer in as many columns as possible.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
896 The maximum number of columns is determined by the current window
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
897 width and the longest string in LIST."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
898 (unless pad-width
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
899 (setq pad-width 3))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
900 (let ((width (window-width))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
901 (max (+ (apply #'max (mapcar #'length list))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
902 pad-width)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
903 (let ((columns (/ width max)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
904 (when (zerop columns)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
905 (setq columns 1))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
906 (while list
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
907 (dotimes (i (1- columns))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
908 (insert (concat (car list) (make-string (- max (length (car list)))
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
909 ?\s)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
910 (setq list (cdr list)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
911 (when (not (null list))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
912 (insert (pop list)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
913 (insert "\n")))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
914
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
915 (defsubst ibuffer-current-mark ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
916 (cadr (get-text-property (line-beginning-position)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
917 'ibuffer-properties)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
918
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
919 (defun ibuffer-mouse-toggle-mark (event)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
920 "Toggle the marked status of the buffer chosen with the mouse."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
921 (interactive "e")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
922 (unwind-protect
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
923 (let ((pt (save-excursion
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
924 (mouse-set-point event)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
925 (point))))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
926 (ibuffer-aif (get-text-property (point) 'ibuffer-filter-group-name)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
927 (ibuffer-toggle-marks it)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
928 (goto-char pt)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
929 (let ((mark (ibuffer-current-mark)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
930 (setq buffer-read-only nil)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
931 (if (eq mark ibuffer-marked-char)
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
932 (ibuffer-set-mark ?\s)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
933 (ibuffer-set-mark ibuffer-marked-char)))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
934 (setq buffer-read-only t)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
935
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
936 (defun ibuffer-find-file (file &optional wildcards)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
937 "Like `find-file', but default to the directory of the buffer at point."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
938 (interactive
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
939 (let ((default-directory (let ((buf (ibuffer-current-buffer)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
940 (if (buffer-live-p buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
941 (with-current-buffer buf
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
942 default-directory)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
943 default-directory))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
944 (list (read-file-name "Find file: " default-directory)
57654
000df8ff0cc6 (ibuffer-find-file): Remove `interactive-p' call; `wildcards' set to t
John Paul Wallington <jpw@pobox.com>
parents: 57563
diff changeset
945 t)))
000df8ff0cc6 (ibuffer-find-file): Remove `interactive-p' call; `wildcards' set to t
John Paul Wallington <jpw@pobox.com>
parents: 57563
diff changeset
946 (find-file file wildcards))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
947
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
948 (defun ibuffer-mouse-visit-buffer (event)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
949 "Visit the buffer chosen with the mouse."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
950 (interactive "e")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
951 (switch-to-buffer
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
952 (save-excursion
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
953 (mouse-set-point event)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
954 (ibuffer-current-buffer t))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
955
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
956 (defun ibuffer-mouse-popup-menu (event)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
957 "Display a menu of operations."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
958 (interactive "e")
48058
7dab1d891656 (ibuffer-mouse-popup-menu): Set point before popping
John Paul Wallington <jpw@pobox.com>
parents: 47740
diff changeset
959 (let ((eventpt (posn-point (event-end event)))
7dab1d891656 (ibuffer-mouse-popup-menu): Set point before popping
John Paul Wallington <jpw@pobox.com>
parents: 47740
diff changeset
960 (origpt (point)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
961 (unwind-protect
46682
7a836df2d686 (ibuffer-mouse-popup-menu): Allow point to be moved by menu functions.
Colin Walters <walters@gnu.org>
parents: 45839
diff changeset
962 (if (get-text-property eventpt 'ibuffer-filter-group-name)
48058
7dab1d891656 (ibuffer-mouse-popup-menu): Set point before popping
John Paul Wallington <jpw@pobox.com>
parents: 47740
diff changeset
963 (progn
7dab1d891656 (ibuffer-mouse-popup-menu): Set point before popping
John Paul Wallington <jpw@pobox.com>
parents: 47740
diff changeset
964 (goto-char eventpt)
7dab1d891656 (ibuffer-mouse-popup-menu): Set point before popping
John Paul Wallington <jpw@pobox.com>
parents: 47740
diff changeset
965 (popup-menu ibuffer-mode-groups-popup))
46682
7a836df2d686 (ibuffer-mouse-popup-menu): Allow point to be moved by menu functions.
Colin Walters <walters@gnu.org>
parents: 45839
diff changeset
966 (let ((inhibit-read-only t))
45129
7b5b6369f90a (ibuffer-mode-operate-menu, ibuffer-mode-mark-menu)
Colin Walters <walters@gnu.org>
parents: 44936
diff changeset
967 (ibuffer-save-marks
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
968 ;; hm. we could probably do this in a better fashion
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
969 (ibuffer-unmark-all ?\r)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
970 (save-excursion
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
971 (goto-char eventpt)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
972 (ibuffer-set-mark ibuffer-marked-char))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
973 (save-excursion
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
974 (popup-menu ibuffer-mode-operate-map)))))
48058
7dab1d891656 (ibuffer-mouse-popup-menu): Set point before popping
John Paul Wallington <jpw@pobox.com>
parents: 47740
diff changeset
975 (setq buffer-read-only t)
48778
d414c281a629 * ibuffer.el (ibuffer-mode): If `show-paren-mode' is enabled,
John Paul Wallington <jpw@pobox.com>
parents: 48485
diff changeset
976 (if (= eventpt (point))
48058
7dab1d891656 (ibuffer-mouse-popup-menu): Set point before popping
John Paul Wallington <jpw@pobox.com>
parents: 47740
diff changeset
977 (goto-char origpt)))))
46682
7a836df2d686 (ibuffer-mouse-popup-menu): Allow point to be moved by menu functions.
Colin Walters <walters@gnu.org>
parents: 45839
diff changeset
978
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
979 (defun ibuffer-skip-properties (props direction)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
980 (while (and (not (eobp))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
981 (let ((hit nil))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
982 (dolist (prop props hit)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
983 (when (get-text-property (point) prop)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
984 (setq hit t)))))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
985 (forward-line direction)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
986 (beginning-of-line)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
987
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
988 (defun ibuffer-customize ()
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
989 "Begin customizing Ibuffer interactively."
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
990 (interactive)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
991 (customize-group 'ibuffer))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
992
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
993 (defun ibuffer-backward-line (&optional arg skip-group-names)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
994 "Move backwards ARG lines, wrapping around the list if necessary."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
995 (interactive "P")
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
996 (or arg (setq arg 1))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
997 (beginning-of-line)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
998 (while (> arg 0)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
999 (forward-line -1)
45839
a3da6ddded28 (ibuffer-movement-cycle): New variable.
Colin Walters <walters@gnu.org>
parents: 45764
diff changeset
1000 (when (and ibuffer-movement-cycle
a3da6ddded28 (ibuffer-movement-cycle): New variable.
Colin Walters <walters@gnu.org>
parents: 45764
diff changeset
1001 (or (get-text-property (point) 'ibuffer-title)
a3da6ddded28 (ibuffer-movement-cycle): New variable.
Colin Walters <walters@gnu.org>
parents: 45764
diff changeset
1002 (and skip-group-names
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1003 (get-text-property (point)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1004 'ibuffer-filter-group-name))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1005 (goto-char (point-max))
44185
c4de5a5d6ecb (ibuffer-help-buffer-modes): New variable.
Colin Walters <walters@gnu.org>
parents: 44137
diff changeset
1006 (beginning-of-line))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1007 (ibuffer-skip-properties (append '(ibuffer-summary)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1008 (when skip-group-names
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1009 '(ibuffer-filter-group-name)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1010 -1)
44185
c4de5a5d6ecb (ibuffer-help-buffer-modes): New variable.
Colin Walters <walters@gnu.org>
parents: 44137
diff changeset
1011 ;; Handle the special case of no buffers.
c4de5a5d6ecb (ibuffer-help-buffer-modes): New variable.
Colin Walters <walters@gnu.org>
parents: 44137
diff changeset
1012 (when (get-text-property (point) 'ibuffer-title)
c4de5a5d6ecb (ibuffer-help-buffer-modes): New variable.
Colin Walters <walters@gnu.org>
parents: 44137
diff changeset
1013 (forward-line 1)
c4de5a5d6ecb (ibuffer-help-buffer-modes): New variable.
Colin Walters <walters@gnu.org>
parents: 44137
diff changeset
1014 (setq arg 1))
c4de5a5d6ecb (ibuffer-help-buffer-modes): New variable.
Colin Walters <walters@gnu.org>
parents: 44137
diff changeset
1015 (decf arg)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1016
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1017 (defun ibuffer-forward-line (&optional arg skip-group-names)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1018 "Move forward ARG lines, wrapping around the list if necessary."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1019 (interactive "P")
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1020 (or arg (setq arg 1))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1021 (beginning-of-line)
45839
a3da6ddded28 (ibuffer-movement-cycle): New variable.
Colin Walters <walters@gnu.org>
parents: 45764
diff changeset
1022 (when (and ibuffer-movement-cycle
a3da6ddded28 (ibuffer-movement-cycle): New variable.
Colin Walters <walters@gnu.org>
parents: 45764
diff changeset
1023 (or (eobp)
a3da6ddded28 (ibuffer-movement-cycle): New variable.
Colin Walters <walters@gnu.org>
parents: 45764
diff changeset
1024 (get-text-property (point) 'ibuffer-summary)))
44245
8bff6cc92867 (ibuffer-mark-interactive): Use `ibuffer-forward-line' instead of
Colin Walters <walters@gnu.org>
parents: 44185
diff changeset
1025 (goto-char (point-min)))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1026 (when (or (get-text-property (point) 'ibuffer-title)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1027 (and skip-group-names
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1028 (get-text-property (point) 'ibuffer-filter-group-name)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1029 (when (> arg 0)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1030 (decf arg))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1031 (ibuffer-skip-properties (append '(ibuffer-title)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1032 (when skip-group-names
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1033 '(ibuffer-filter-group-name)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1034 1))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1035 (if (< arg 0)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1036 (ibuffer-backward-line (- arg))
44185
c4de5a5d6ecb (ibuffer-help-buffer-modes): New variable.
Colin Walters <walters@gnu.org>
parents: 44137
diff changeset
1037 (while (> arg 0)
c4de5a5d6ecb (ibuffer-help-buffer-modes): New variable.
Colin Walters <walters@gnu.org>
parents: 44137
diff changeset
1038 (forward-line 1)
45839
a3da6ddded28 (ibuffer-movement-cycle): New variable.
Colin Walters <walters@gnu.org>
parents: 45764
diff changeset
1039 (when (and ibuffer-movement-cycle
a3da6ddded28 (ibuffer-movement-cycle): New variable.
Colin Walters <walters@gnu.org>
parents: 45764
diff changeset
1040 (or (eobp)
a3da6ddded28 (ibuffer-movement-cycle): New variable.
Colin Walters <walters@gnu.org>
parents: 45764
diff changeset
1041 (get-text-property (point) 'ibuffer-summary)))
44185
c4de5a5d6ecb (ibuffer-help-buffer-modes): New variable.
Colin Walters <walters@gnu.org>
parents: 44137
diff changeset
1042 (goto-char (point-min)))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1043 (decf arg)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1044 (ibuffer-skip-properties (append '(ibuffer-title)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1045 (when skip-group-names
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1046 '(ibuffer-filter-group-name)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1047 1))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1048
44659
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1049 (defun ibuffer-visit-buffer (&optional single)
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1050 "Visit the buffer on this line.
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1051 If optional argument SINGLE is non-nil, then also ensure there is only
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1052 one window."
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1053 (interactive "P")
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1054 (let ((buf (ibuffer-current-buffer t)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1055 (bury-buffer (current-buffer))
44659
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1056 (switch-to-buffer buf)
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1057 (when single
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1058 (delete-other-windows))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1059
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1060 (defun ibuffer-visit-buffer-other-window (&optional noselect)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1061 "Visit the buffer on this line in another window."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1062 (interactive)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1063 (let ((buf (ibuffer-current-buffer t)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1064 (bury-buffer (current-buffer))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1065 (if noselect
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1066 (let ((curwin (selected-window)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1067 (pop-to-buffer buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1068 (select-window curwin))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1069 (switch-to-buffer-other-window buf))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1070
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1071 (defun ibuffer-visit-buffer-other-window-noselect ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1072 "Visit the buffer on this line in another window, but don't select it."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1073 (interactive)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1074 (ibuffer-visit-buffer-other-window t))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1075
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1076 (defun ibuffer-visit-buffer-other-frame ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1077 "Visit the buffer on this line in another frame."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1078 (interactive)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1079 (let ((buf (ibuffer-current-buffer t)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1080 (bury-buffer (current-buffer))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1081 (switch-to-buffer-other-frame buf)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1082
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1083 (defun ibuffer-visit-buffer-1-window ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1084 "Visit the buffer on this line, and delete other windows."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1085 (interactive)
44659
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1086 (ibuffer-visit-buffer t))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1087
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1088 (defun ibuffer-bury-buffer ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1089 "Bury the buffer on this line."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1090 (interactive)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1091 (let ((buf (ibuffer-current-buffer t))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1092 (line (+ 1 (count-lines 1 (point)))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1093 (bury-buffer buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1094 (ibuffer-update nil t)
104543
da8b3e61b182 Use forward-line rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents: 102270
diff changeset
1095 (goto-char (point-min))
da8b3e61b182 Use forward-line rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents: 102270
diff changeset
1096 (forward-line (1- line))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1097
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1098 (defun ibuffer-visit-tags-table ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1099 "Visit the tags table in the buffer on this line. See `visit-tags-table'."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1100 (interactive)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1101 (let ((file (buffer-file-name (ibuffer-current-buffer t))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1102 (if file
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1103 (visit-tags-table file)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1104 (error "Specified buffer has no file"))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1105
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1106 (defun ibuffer-do-view (&optional other-frame)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1107 "View marked buffers, or the buffer on the current line.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1108 If optional argument OTHER-FRAME is non-nil, then display each
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1109 marked buffer in a new frame. Otherwise, display each buffer as
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1110 a new window in the current frame, splitting vertically."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1111 (interactive)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1112 (ibuffer-do-view-1 (if other-frame 'other-frame 'vertically)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1113
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1114 (defun ibuffer-do-view-horizontally (&optional other-frame)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1115 "As `ibuffer-do-view', but split windows horizontally."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1116 (interactive)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1117 (ibuffer-do-view-1 (if other-frame 'other-frame 'horizontally)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1118
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1119 (defun ibuffer-do-view-1 (type)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1120 (let ((marked-bufs (ibuffer-get-marked-buffers)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1121 (when (null marked-bufs)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1122 (setq marked-bufs (list (ibuffer-current-buffer t))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1123 (unless (and (eq type 'other-frame)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1124 (not ibuffer-expert)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1125 (> (length marked-bufs) 3)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1126 (not (y-or-n-p (format "Really create a new frame for %s buffers? "
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1127 (length marked-bufs)))))
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1128 (set-buffer-modified-p nil)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1129 (delete-other-windows)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1130 (switch-to-buffer (pop marked-bufs))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1131 (let ((height (/ (1- (if (eq type 'horizontally) (frame-width)
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1132 (frame-height)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1133 (1+ (length marked-bufs)))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1134 (mapcar (if (eq type 'other-frame)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1135 #'(lambda (buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1136 (let ((curframe (selected-frame)))
50708
c2c47be7d704 (ibuffer-name-map, ibuffer-mode-name-map)
John Paul Wallington <jpw@pobox.com>
parents: 50448
diff changeset
1137 (select-frame (make-frame))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1138 (switch-to-buffer buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1139 (select-frame curframe)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1140 #'(lambda (buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1141 (split-window nil height (eq type 'horizontally))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1142 (other-window 1)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1143 (switch-to-buffer buf)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1144 marked-bufs)))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1145
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1146 (defun ibuffer-do-view-other-frame ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1147 "View each of the marked buffers in a separate frame."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1148 (interactive)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1149 (ibuffer-do-view t))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1150
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1151 (defsubst ibuffer-map-marked-lines (func)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1152 (prog1 (ibuffer-map-on-mark ibuffer-marked-char func)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1153 (ibuffer-redisplay t)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1154
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1155 (defun ibuffer-shrink-to-fit (&optional owin)
98561
bac33d669abf ibuffer: Fix issue with ERC scroll-to-bottom (Bug #858).
Michael Olson <mwolson@gnu.org>
parents: 97396
diff changeset
1156 ;; Make sure that redisplay is performed, otherwise there can be a
bac33d669abf ibuffer: Fix issue with ERC scroll-to-bottom (Bug #858).
Michael Olson <mwolson@gnu.org>
parents: 97396
diff changeset
1157 ;; bad interaction with code in the window-scroll-functions hook
bac33d669abf ibuffer: Fix issue with ERC scroll-to-bottom (Bug #858).
Michael Olson <mwolson@gnu.org>
parents: 97396
diff changeset
1158 (redisplay t)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1159 (fit-window-to-buffer nil (when owin (/ (frame-height)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1160 (length (window-list (selected-frame)))))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1161
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1162 (defun ibuffer-confirm-operation-on (operation names)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1163 "Display a buffer asking whether to perform OPERATION on NAMES."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1164 (or ibuffer-expert
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1165 (if (= (length names) 1)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1166 (y-or-n-p (format "Really %s buffer %s? " operation (car names)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1167 (let ((buf (get-buffer-create "*Ibuffer confirmation*")))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1168 (with-current-buffer buf
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1169 (setq buffer-read-only nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1170 (erase-buffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1171 (ibuffer-columnize-and-insert-list names)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1172 (goto-char (point-min))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1173 (setq buffer-read-only t))
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1174 (let ((lastwin (car (last (window-list nil 'nomini)))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1175 ;; Now attempt to display the buffer...
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1176 (save-window-excursion
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1177 (select-window lastwin)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1178 ;; The window might be too small to split; in that case,
48343
35889dbb9b84 (ibuffer-use-other-window, ibuffer-use-header-line)
John Paul Wallington <jpw@pobox.com>
parents: 48058
diff changeset
1179 ;; try a few times to increase its size before giving up.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1180 (let ((attempts 0)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1181 (trying t))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1182 (while trying
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1183 (condition-case err
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1184 (progn
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1185 (split-window)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1186 (setq trying nil))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1187 (error
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1188 ;; Handle a failure
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1189 (if (or (> (incf attempts) 4)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1190 (and (stringp (cadr err))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
1191 ;; This definitely falls in the
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1192 ;; ghetto hack category...
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1193 (not (string-match "too small" (cadr err)))))
105665
4f559aa94368 (ibuffer-confirm-operation-on): Correction to error
Kevin Ryde <user42@zip.com.au>
parents: 105322
diff changeset
1194 (signal (car err) (cdr err))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1195 (enlarge-window 3))))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1196 (select-window (next-window))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1197 (switch-to-buffer buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1198 (unwind-protect
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1199 (progn
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1200 (fit-window-to-buffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1201 (y-or-n-p (format "Really %s %d buffers? "
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1202 operation (length names))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1203 (kill-buffer buf))))))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1204
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1205 (defsubst ibuffer-map-lines-nomodify (function)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1206 "As `ibuffer-map-lines', but don't set the modification flag."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1207 (ibuffer-map-lines function t))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1208
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1209 (defun ibuffer-buffer-names-with-mark (mark)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1210 (let ((ibuffer-buffer-names-with-mark-result nil))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1211 (ibuffer-map-lines-nomodify
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1212 #'(lambda (buf mk)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1213 (when (char-equal mark mk)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1214 (push (buffer-name buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1215 ibuffer-buffer-names-with-mark-result))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1216 ibuffer-buffer-names-with-mark-result))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1217
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1218 (defsubst ibuffer-marked-buffer-names ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1219 (ibuffer-buffer-names-with-mark ibuffer-marked-char))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1220
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1221 (defsubst ibuffer-deletion-marked-buffer-names ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1222 (ibuffer-buffer-names-with-mark ibuffer-deletion-char))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1223
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1224 (defun ibuffer-count-marked-lines (&optional all)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1225 (if all
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1226 (ibuffer-map-lines-nomodify
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1227 #'(lambda (buf mark)
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
1228 (not (char-equal mark ?\s))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1229 (ibuffer-map-lines-nomodify
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1230 #'(lambda (buf mark)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1231 (char-equal mark ibuffer-marked-char)))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1232
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1233 (defsubst ibuffer-count-deletion-lines ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1234 (ibuffer-map-lines-nomodify
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1235 #'(lambda (buf mark)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1236 (char-equal mark ibuffer-deletion-char))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1237
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1238 (defsubst ibuffer-map-deletion-lines (func)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1239 (ibuffer-map-on-mark ibuffer-deletion-char func))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1240
94977
905940be40d9 (ibuffer-assert-ibuffer-mode): New defsubst.
John Paul Wallington <jpw@pobox.com>
parents: 94905
diff changeset
1241 (defsubst ibuffer-assert-ibuffer-mode ()
102210
d7624c39682b * ibuffer.el (ibuffer-redisplay-engine): Avoid "Mark set" message clobbering
Juanma Barranquero <lekktu@gmail.com>
parents: 100908
diff changeset
1242 (assert (derived-mode-p 'ibuffer-mode)))
94977
905940be40d9 (ibuffer-assert-ibuffer-mode): New defsubst.
John Paul Wallington <jpw@pobox.com>
parents: 94905
diff changeset
1243
94905
c3aeab0459b2 (ibuffer-buffer-file-name): New function.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
1244 (defun ibuffer-buffer-file-name ()
c3aeab0459b2 (ibuffer-buffer-file-name): New function.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
1245 (or buffer-file-name
c3aeab0459b2 (ibuffer-buffer-file-name): New function.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
1246 (let ((dirname (or (and (boundp 'dired-directory)
c3aeab0459b2 (ibuffer-buffer-file-name): New function.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
1247 (if (stringp dired-directory)
c3aeab0459b2 (ibuffer-buffer-file-name): New function.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
1248 dired-directory
c3aeab0459b2 (ibuffer-buffer-file-name): New function.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
1249 (car dired-directory)))
96491
c427b6f2332a (ibuffer-buffer-file-name): Use `list-buffers-directory'. Remove
John Paul Wallington <jpw@pobox.com>
parents: 94977
diff changeset
1250 (bound-and-true-p list-buffers-directory))))
97396
d122b5da1bae (ibuffer-buffer-file-name): Return nil rather than empty string when
John Paul Wallington <jpw@pobox.com>
parents: 96956
diff changeset
1251 (and dirname (expand-file-name dirname)))))
94905
c3aeab0459b2 (ibuffer-buffer-file-name): New function.
John Paul Wallington <jpw@pobox.com>
parents: 94678
diff changeset
1252
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1253 (define-ibuffer-op ibuffer-do-save ()
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1254 "Save marked buffers as with `save-buffer'."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1255 (:complex t
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1256 :opstring "saved"
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1257 :modifier-p :maybe)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1258 (when (buffer-modified-p buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1259 (if (not (with-current-buffer buf
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1260 buffer-file-name))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1261 ;; handle the case where we're prompted
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1262 ;; for a file name
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1263 (save-window-excursion
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1264 (switch-to-buffer buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1265 (save-buffer))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1266 (with-current-buffer buf
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1267 (save-buffer))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1268 t)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1269
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1270 (define-ibuffer-op ibuffer-do-toggle-modified ()
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1271 "Toggle modification flag of marked buffers."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1272 (:opstring "(un)marked as modified"
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1273 :modifier-p t)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1274 (set-buffer-modified-p (not (buffer-modified-p))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1275
92221
dadfc0119018 (ibuffer-do-toggle-read-only): New optional arg as in
Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
parents: 91782
diff changeset
1276 (define-ibuffer-op ibuffer-do-toggle-read-only (&optional arg)
dadfc0119018 (ibuffer-do-toggle-read-only): New optional arg as in
Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
parents: 91782
diff changeset
1277 "Toggle read only status in marked buffers.
92226
bafdf3c04297 (ibuffer-do-toggle-read-only): Don't use `iff' in doc-string.
Glenn Morris <rgm@gnu.org>
parents: 92221
diff changeset
1278 With optional ARG, make read-only only if ARG is positive."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1279 (:opstring "toggled read only status in"
92221
dadfc0119018 (ibuffer-do-toggle-read-only): New optional arg as in
Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
parents: 91782
diff changeset
1280 :interactive "P"
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1281 :modifier-p t)
92221
dadfc0119018 (ibuffer-do-toggle-read-only): New optional arg as in
Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
parents: 91782
diff changeset
1282 (toggle-read-only arg))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1283
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1284 (define-ibuffer-op ibuffer-do-delete ()
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1285 "Kill marked buffers as with `kill-this-buffer'."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1286 (:opstring "killed"
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1287 :active-opstring "kill"
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1288 :dangerous t
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1289 :complex t
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1290 :modifier-p t)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1291 (if (kill-buffer buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1292 'kill
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1293 nil))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1294
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1295 (define-ibuffer-op ibuffer-do-kill-on-deletion-marks ()
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1296 "Kill buffers marked for deletion as with `kill-this-buffer'."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1297 (:opstring "killed"
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1298 :active-opstring "kill"
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1299 :dangerous t
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1300 :complex t
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1301 :mark :deletion
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1302 :modifier-p t)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1303 (if (kill-buffer buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1304 'kill
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1305 nil))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1306
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1307 (defun ibuffer-unmark-all (mark)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1308 "Unmark all buffers with mark MARK."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1309 (interactive "cRemove marks (RET means all):")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1310 (if (= (ibuffer-count-marked-lines t) 0)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1311 (message "No buffers marked; use 'm' to mark a buffer")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1312 (cond
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1313 ((char-equal mark ibuffer-marked-char)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1314 (ibuffer-map-marked-lines
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1315 #'(lambda (buf mark)
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
1316 (ibuffer-set-mark-1 ?\s)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1317 t)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1318 ((char-equal mark ibuffer-deletion-char)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1319 (ibuffer-map-deletion-lines
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1320 #'(lambda (buf mark)
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
1321 (ibuffer-set-mark-1 ?\s)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1322 t)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1323 (t
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1324 (ibuffer-map-lines
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1325 #'(lambda (buf mark)
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
1326 (when (not (char-equal mark ?\s))
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
1327 (ibuffer-set-mark-1 ?\s))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1328 t)))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1329 (ibuffer-redisplay t))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1330
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1331 (defun ibuffer-toggle-marks (&optional group)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1332 "Toggle which buffers are marked.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1333 In other words, unmarked buffers become marked, and marked buffers
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1334 become unmarked.
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1335 If point is on a group name, then this function operates on that
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1336 group."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1337 (interactive)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1338 (ibuffer-aif (get-text-property (point) 'ibuffer-filter-group-name)
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1339 (setq group it))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1340 (let ((count
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1341 (ibuffer-map-lines
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1342 #'(lambda (buf mark)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1343 (cond ((eq mark ibuffer-marked-char)
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
1344 (ibuffer-set-mark-1 ?\s)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1345 nil)
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
1346 ((eq mark ?\s)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1347 (ibuffer-set-mark-1 ibuffer-marked-char)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1348 t)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1349 (t
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1350 nil)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1351 nil group)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1352 (message "%s buffers marked" count))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1353 (ibuffer-redisplay t))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1354
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1355 (defun ibuffer-mark-forward (arg)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1356 "Mark the buffer on this line, and move forward ARG lines.
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1357 If point is on a group name, this function operates on that group."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1358 (interactive "P")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1359 (ibuffer-mark-interactive arg ibuffer-marked-char 1))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1360
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1361 (defun ibuffer-unmark-forward (arg)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1362 "Unmark the buffer on this line, and move forward ARG lines.
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1363 If point is on a group name, this function operates on that group."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1364 (interactive "P")
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
1365 (ibuffer-mark-interactive arg ?\s 1))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1366
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1367 (defun ibuffer-unmark-backward (arg)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1368 "Unmark the buffer on this line, and move backward ARG lines.
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1369 If point is on a group name, this function operates on that group."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1370 (interactive "P")
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
1371 (ibuffer-mark-interactive arg ?\s -1))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1372
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1373 (defun ibuffer-mark-interactive (arg mark movement)
94977
905940be40d9 (ibuffer-assert-ibuffer-mode): New defsubst.
John Paul Wallington <jpw@pobox.com>
parents: 94905
diff changeset
1374 (ibuffer-assert-ibuffer-mode)
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1375 (or arg (setq arg 1))
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1376 (ibuffer-forward-line 0)
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1377 (ibuffer-aif (get-text-property (point) 'ibuffer-filter-group-name)
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1378 (progn
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1379 (require 'ibuf-ext)
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1380 (ibuffer-mark-on-buffer #'identity mark it))
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1381 (ibuffer-forward-line 0 t)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1382 (let ((inhibit-read-only t))
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1383 (while (> arg 0)
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1384 (ibuffer-set-mark mark)
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1385 (ibuffer-forward-line movement t)
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1386 (setq arg (1- arg))))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1387
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1388 (defun ibuffer-set-mark (mark)
94977
905940be40d9 (ibuffer-assert-ibuffer-mode): New defsubst.
John Paul Wallington <jpw@pobox.com>
parents: 94905
diff changeset
1389 (ibuffer-assert-ibuffer-mode)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1390 (let ((inhibit-read-only t))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1391 (ibuffer-set-mark-1 mark)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1392 (setq ibuffer-did-modification t)
44021
b2462b8e1cf2 (ibuffer-set-mark): Go back to the beginning of the line after setting
Colin Walters <walters@gnu.org>
parents: 43873
diff changeset
1393 (ibuffer-redisplay-current)
b2462b8e1cf2 (ibuffer-set-mark): Go back to the beginning of the line after setting
Colin Walters <walters@gnu.org>
parents: 43873
diff changeset
1394 (beginning-of-line)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1395
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1396 (defun ibuffer-set-mark-1 (mark)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1397 (let ((beg (line-beginning-position))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1398 (end (line-end-position)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1399 (put-text-property beg end 'ibuffer-properties
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1400 (list (ibuffer-current-buffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1401 mark))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1402
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1403 (defun ibuffer-mark-for-delete (arg)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1404 "Mark the buffers on ARG lines forward for deletion.
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1405 If point is on a group name, this function operates on that group."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1406 (interactive "P")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1407 (ibuffer-mark-interactive arg ibuffer-deletion-char 1))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1408
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1409 (defun ibuffer-mark-for-delete-backwards (arg)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1410 "Mark the buffers on ARG lines backward for deletion.
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
1411 If point is on a group name, this function operates on that group."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1412 (interactive "P")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1413 (ibuffer-mark-interactive arg ibuffer-deletion-char -1))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1414
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1415 (defun ibuffer-current-buffer (&optional must-be-live)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1416 (let ((buf (car (get-text-property (line-beginning-position)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1417 'ibuffer-properties))))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1418 (when must-be-live
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1419 (if (bufferp buf)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1420 (unless (buffer-live-p buf)
87145
f19c915a241f Fix my previous breakages; improve ChangeLog
Deepak Goel <deego@gnufans.org>
parents: 87139
diff changeset
1421 (error "Buffer %s has been killed; %s" buf (substitute-command-keys "use `\\[ibuffer-update]' to update")))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1422 (error "No buffer on this line")))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1423 buf))
43104
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1424
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1425 (defun ibuffer-active-formats-name ()
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1426 (if (boundp 'ibuffer-filter-format-alist)
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1427 (let ((ret nil))
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1428 (dolist (filter ibuffer-filtering-qualifiers ret)
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1429 (let ((val (assq (car filter) ibuffer-filter-format-alist)))
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1430 (when val
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1431 (setq ret (car filter)))))
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1432 (if ret
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1433 ret
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1434 :ibuffer-formats))
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1435 :ibuffer-formats))
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1436
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1437 (defun ibuffer-current-formats (uncompiledp)
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1438 (let* ((name (ibuffer-active-formats-name)))
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1439 (ibuffer-check-formats)
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1440 (if (eq name :ibuffer-formats)
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1441 (if uncompiledp
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1442 ibuffer-formats
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1443 ibuffer-compiled-formats)
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1444 (cadr (assq name
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1445 (if uncompiledp
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1446 ibuffer-filter-format-alist
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1447 ibuffer-compiled-filter-formats))))))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
1448
43104
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1449 (defun ibuffer-current-format (&optional uncompiledp)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1450 (or ibuffer-current-format
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1451 (setq ibuffer-current-format 0))
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1452 (nth ibuffer-current-format (ibuffer-current-formats uncompiledp)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1453
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1454 (defun ibuffer-expand-format-entry (form)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1455 (if (or (consp form)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1456 (symbolp form))
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1457 (let ((sym (intern (concat "ibuffer-make-column-"
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1458 (symbol-name (if (consp form)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1459 (car form)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1460 form))))))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1461 (unless (or (fboundp sym)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1462 (assq sym ibuffer-inline-columns))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1463 (error "Unknown column %s in ibuffer-formats" form))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1464 (let (min max align elide)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1465 (if (consp form)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1466 (setq min (or (nth 1 form) 0)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1467 max (or (nth 2 form) -1)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1468 align (or (nth 3 form) :left)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1469 elide (or (nth 4 form) nil))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1470 (setq min 0
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1471 max -1
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1472 align :left
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1473 elide nil))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1474 (list sym min max align elide)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1475 form))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
1476
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1477 (defun ibuffer-compile-make-eliding-form (strvar elide from-end-p)
45687
434d9f56eab8 (ibuffer-category-alist): Delete.
Colin Walters <walters@gnu.org>
parents: 45443
diff changeset
1478 (let ((ellipsis (propertize ibuffer-eliding-string 'font-lock-face 'bold)))
65089
b4238c551ea7 (ibuffer-compile-make-eliding-form, ibuffer-check-formats): Use
Juanma Barranquero <lekktu@gmail.com>
parents: 64762
diff changeset
1479 (if (or elide (with-no-warnings ibuffer-elide-long-columns))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1480 `(if (> strlen 5)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1481 ,(if from-end-p
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1482 `(concat ,ellipsis
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1483 (substring ,strvar
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1484 (length ibuffer-eliding-string)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1485 `(concat
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1486 (substring ,strvar 0 (- strlen ,(length ellipsis)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1487 ,ellipsis))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1488 ,strvar)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1489 strvar)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1490
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1491 (defun ibuffer-compile-make-substring-form (strvar maxvar from-end-p)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1492 (if from-end-p
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1493 `(substring str
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1494 (- strlen ,maxvar))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1495 `(substring ,strvar 0 ,maxvar)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1496
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1497 (defun ibuffer-compile-make-format-form (strvar widthform alignment)
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
1498 (let* ((left `(make-string tmp2 ?\s))
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
1499 (right `(make-string (- tmp1 tmp2) ?\s)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1500 `(progn
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1501 (setq tmp1 ,widthform
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1502 tmp2 (/ tmp1 2))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1503 ,(case alignment
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1504 (:right `(concat ,left ,right ,strvar))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1505 (:center `(concat ,left ,strvar ,right))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1506 (:left `(concat ,strvar ,left ,right))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1507 (t (error "Invalid alignment %s" alignment))))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1508
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1509 (defun ibuffer-compile-format (format)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1510 (let ((result nil)
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1511 ;; We use these variables to keep track of which variables
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1512 ;; inside the generated function we need to bind, since
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1513 ;; binding variables in Emacs takes time.
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1514 str-used tmp1-used tmp2-used global-strlen-used)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1515 (dolist (form format)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1516 (push
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1517 ;; Generate a form based on a particular format entry, like
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1518 ;; " ", mark, or (mode 16 16 :right).
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1519 (if (stringp form)
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1520 ;; It's a string; all we need to do is insert it.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1521 `(insert ,form)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1522 (let* ((form (ibuffer-expand-format-entry form))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1523 (sym (nth 0 form))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1524 (min (nth 1 form))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1525 (max (nth 2 form))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1526 (align (nth 3 form))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1527 (elide (nth 4 form)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1528 (let* ((from-end-p (when (minusp min)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1529 (setq min (- min))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1530 t))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1531 (letbindings nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1532 (outforms nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1533 minform
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1534 maxform
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1535 min-used max-used strlen-used)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1536 (when (or (not (integerp min)) (>= min 0))
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1537 ;; This is a complex case; they want it limited to a
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1538 ;; minimum size.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1539 (setq min-used t)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1540 (setq str-used t strlen-used t global-strlen-used t
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1541 tmp1-used t tmp2-used t)
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1542 ;; Generate code to limit the string to a minimum size.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1543 (setq minform `(progn
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1544 (setq str
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1545 ,(ibuffer-compile-make-format-form
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1546 'str
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1547 `(- ,(if (integerp min)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1548 min
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1549 'min)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1550 strlen)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1551 align)))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1552 (when (or (not (integerp max)) (> max 0))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1553 (setq str-used t max-used t)
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1554 ;; Generate code to limit the string to a maximum size.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1555 (setq maxform `(progn
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1556 (setq str
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1557 ,(ibuffer-compile-make-substring-form
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1558 'str
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1559 (if (integerp max)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1560 max
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1561 'max)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1562 from-end-p))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1563 (setq strlen (length str))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1564 (setq str
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1565 ,(ibuffer-compile-make-eliding-form 'str
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1566 elide
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1567 from-end-p)))))
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1568 ;; Now, put these forms together with the rest of the code.
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1569 (let ((callform
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1570 ;; Is this an "inline" column? This means we have
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1571 ;; to get the code from the
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1572 ;; `ibuffer-inline-columns' alist and insert it
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1573 ;; into our generated code. Otherwise, we just
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1574 ;; generate a call to the column function.
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1575 (ibuffer-aif (assq sym ibuffer-inline-columns)
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1576 (nth 1 it)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1577 `(,sym buffer mark)))
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1578 ;; You're not expected to understand this. Hell, I
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1579 ;; don't even understand it, and I wrote it five
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1580 ;; minutes ago.
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1581 (insertgenfn (ibuffer-aif (get sym 'ibuffer-column-summarizer)
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1582 ;; I really, really wish Emacs Lisp had closures.
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1583 (lambda (arg sym)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1584 `(insert
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1585 (let ((ret ,arg))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1586 (put ',sym 'ibuffer-column-summary
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1587 (cons ret (get ',sym 'ibuffer-column-summary)))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1588 ret)))
45687
434d9f56eab8 (ibuffer-category-alist): Delete.
Colin Walters <walters@gnu.org>
parents: 45443
diff changeset
1589 (lambda (arg sym)
434d9f56eab8 (ibuffer-category-alist): Delete.
Colin Walters <walters@gnu.org>
parents: 45443
diff changeset
1590 `(insert ,arg))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1591 (mincompform `(< strlen ,(if (integerp min)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1592 min
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1593 'min)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1594 (maxcompform `(> strlen ,(if (integerp max)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1595 max
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1596 'max))))
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1597 (if (or min-used max-used)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1598 ;; The complex case, where we have to limit the
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1599 ;; form to a maximum or minimum size.
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1600 (progn
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1601 (when (and min-used (not (integerp min)))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1602 (push `(min ,min) letbindings))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1603 (when (and max-used (not (integerp max)))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1604 (push `(max ,max) letbindings))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1605 (push
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1606 (if (and min-used max-used)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1607 `(if ,mincompform
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1608 ,minform
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1609 (if ,maxcompform
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1610 ,maxform))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1611 (if min-used
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1612 `(when ,mincompform
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1613 ,minform)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1614 `(when ,maxcompform
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1615 ,maxform)))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1616 outforms)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1617 (push (append
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1618 `(setq str ,callform)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1619 (when strlen-used
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1620 `(strlen (length str))))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1621 outforms)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1622 (setq outforms
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1623 (append outforms (list (funcall insertgenfn 'str sym)))))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1624 ;; The simple case; just insert the string.
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1625 (push (funcall insertgenfn callform sym) outforms))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1626 ;; Finally, return a `let' form which binds the
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1627 ;; variables in `letbindings', and contains all the
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1628 ;; code in `outforms'.
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1629 `(let ,letbindings
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1630 ,@outforms)))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1631 result))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1632 (setq result
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1633 ;; We don't want to unconditionally load the byte-compiler.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1634 (funcall (if (or ibuffer-always-compile-formats
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1635 (featurep 'bytecomp))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1636 #'byte-compile
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1637 #'identity)
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1638 ;; Here, we actually create a lambda form which
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1639 ;; inserts all the generated forms for each entry
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1640 ;; in the format string.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1641 (nconc (list 'lambda '(buffer mark))
43489
ffa9b62fa5b9 (ibuffer-compile-format): Don't uselessly bind `pt' in generated
Colin Walters <walters@gnu.org>
parents: 43382
diff changeset
1642 `((let ,(append (when str-used
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1643 '(str))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1644 (when global-strlen-used
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1645 '(strlen))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1646 (when tmp1-used
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1647 '(tmp1))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1648 (when tmp2-used
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1649 '(tmp2)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1650 ,@(nreverse result))))))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1651
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1652 (defun ibuffer-recompile-formats ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1653 "Recompile `ibuffer-formats'."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1654 (interactive)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1655 (setq ibuffer-compiled-formats
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1656 (mapcar #'ibuffer-compile-format ibuffer-formats))
43104
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1657 (when (boundp 'ibuffer-filter-format-alist)
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1658 (setq ibuffer-compiled-filter-formats
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1659 (mapcar #'(lambda (entry)
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1660 (cons (car entry)
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1661 (mapcar #'(lambda (formats)
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1662 (mapcar #'ibuffer-compile-format formats))
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1663 (cdr entry))))
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1664 ibuffer-filter-format-alist))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1665
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1666 (defun ibuffer-clear-summary-columns (format)
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1667 (dolist (form format)
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1668 (ibuffer-awhen (and (consp form)
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1669 (get (car form) 'ibuffer-column-summarizer))
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1670 (put (car form) 'ibuffer-column-summary nil))))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
1671
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1672 (defun ibuffer-check-formats ()
43104
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1673 (when (null ibuffer-formats)
2a6ac08c9a18 (ibuffer): Remove link; the "home page" for ibuffer is now the Emacs
Colin Walters <walters@gnu.org>
parents: 42884
diff changeset
1674 (error "No formats!"))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1675 (let ((ext-loaded (featurep 'ibuf-ext)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1676 (when (or (null ibuffer-compiled-formats)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1677 (null ibuffer-cached-formats)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1678 (not (eq ibuffer-cached-formats ibuffer-formats))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1679 (null ibuffer-cached-eliding-string)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1680 (not (equal ibuffer-cached-eliding-string ibuffer-eliding-string))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1681 (eql 0 ibuffer-cached-elide-long-columns)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1682 (not (eql ibuffer-cached-elide-long-columns
65089
b4238c551ea7 (ibuffer-compile-make-eliding-form, ibuffer-check-formats): Use
Juanma Barranquero <lekktu@gmail.com>
parents: 64762
diff changeset
1683 (with-no-warnings ibuffer-elide-long-columns)))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1684 (and ext-loaded
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1685 (not (eq ibuffer-cached-filter-formats
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1686 ibuffer-filter-format-alist))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1687 (and ibuffer-filter-format-alist
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1688 (null ibuffer-compiled-filter-formats))))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1689 (message "Formats have changed, recompiling...")
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1690 (ibuffer-recompile-formats)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1691 (setq ibuffer-cached-formats ibuffer-formats
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1692 ibuffer-cached-eliding-string ibuffer-eliding-string
65089
b4238c551ea7 (ibuffer-compile-make-eliding-form, ibuffer-check-formats): Use
Juanma Barranquero <lekktu@gmail.com>
parents: 64762
diff changeset
1693 ibuffer-cached-elide-long-columns (with-no-warnings ibuffer-elide-long-columns))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1694 (when ext-loaded
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1695 (setq ibuffer-cached-filter-formats ibuffer-filter-format-alist))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1696 (message "Formats have changed, recompiling...done"))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1697
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1698 (defvar ibuffer-inline-columns nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1699
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1700 (define-ibuffer-column mark (:name " " :inline t)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1701 (string mark))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1703 (define-ibuffer-column read-only (:name "R" :inline t)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1704 (if buffer-read-only
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1705 (string ibuffer-read-only-char)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1706 " "))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1707
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1708 (define-ibuffer-column modified (:name "M" :inline t)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1709 (if (buffer-modified-p)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1710 (string ibuffer-modified-char)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1711 " "))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1712
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1713 (define-ibuffer-column name
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1714 (:inline t
69764
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
1715 :header-mouse-map ibuffer-name-header-map
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1716 :props
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1717 ('mouse-face 'highlight 'keymap ibuffer-name-map
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1718 'ibuffer-name-column t
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1719 'help-echo '(if tooltip-mode
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1720 "mouse-1: mark this buffer\nmouse-2: select this buffer\nmouse-3: operate on this buffer"
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1721 "mouse-1: mark buffer mouse-2: select buffer mouse-3: operate"))
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1722 :summarizer
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1723 (lambda (strings)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1724 (let ((bufs (length strings)))
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1725 (cond ((zerop bufs) "No buffers")
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1726 ((= 1 bufs) "1 buffer")
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1727 (t (format "%s buffers" bufs))))))
45687
434d9f56eab8 (ibuffer-category-alist): Delete.
Colin Walters <walters@gnu.org>
parents: 45443
diff changeset
1728 (propertize (buffer-name) 'font-lock-face (ibuffer-buffer-name-face buffer mark)))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
1729
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1730 (define-ibuffer-column size
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1731 (:inline t
69764
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
1732 :header-mouse-map ibuffer-size-header-map
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1733 :summarizer
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1734 (lambda (column-strings)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1735 (let ((total 0))
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1736 (dolist (string column-strings)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1737 (setq total
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1738 ;; like, ewww ...
56630
50923476a86f (define-ibuffer-column size): Use string-to-number instead of string-to-int.
John Paul Wallington <jpw@pobox.com>
parents: 56337
diff changeset
1739 (+ (float (string-to-number string))
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1740 total)))
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1741 (format "%.0f" total))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1742 (format "%s" (buffer-size)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1743
56630
50923476a86f (define-ibuffer-column size): Use string-to-number instead of string-to-int.
John Paul Wallington <jpw@pobox.com>
parents: 56337
diff changeset
1744 (define-ibuffer-column mode
50923476a86f (define-ibuffer-column size): Use string-to-number instead of string-to-int.
John Paul Wallington <jpw@pobox.com>
parents: 56337
diff changeset
1745 (:inline t
69764
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
1746 :header-mouse-map ibuffer-mode-header-map
56630
50923476a86f (define-ibuffer-column size): Use string-to-number instead of string-to-int.
John Paul Wallington <jpw@pobox.com>
parents: 56337
diff changeset
1747 :props
50923476a86f (define-ibuffer-column size): Use string-to-number instead of string-to-int.
John Paul Wallington <jpw@pobox.com>
parents: 56337
diff changeset
1748 ('mouse-face 'highlight
50923476a86f (define-ibuffer-column size): Use string-to-number instead of string-to-int.
John Paul Wallington <jpw@pobox.com>
parents: 56337
diff changeset
1749 'keymap ibuffer-mode-name-map
50923476a86f (define-ibuffer-column size): Use string-to-number instead of string-to-int.
John Paul Wallington <jpw@pobox.com>
parents: 56337
diff changeset
1750 'help-echo "mouse-2: filter by this mode"))
87791
179da0eedc24 (mode): Pass the buffer to format-mode-line.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
1751 (format-mode-line mode-name nil nil (current-buffer)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1752
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1753 (define-ibuffer-column process
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1754 (:summarizer
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1755 (lambda (strings)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1756 (let ((total (length (delete "" strings))))
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1757 (cond ((zerop total) "No processes")
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1758 ((= 1 total) "1 process")
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1759 (t (format "%d processes" total))))))
44870
ed308b745565 (define column process): Use `ibuffer-aif'.
Colin Walters <walters@gnu.org>
parents: 44854
diff changeset
1760 (ibuffer-aif (get-buffer-process buffer)
ed308b745565 (define column process): Use `ibuffer-aif'.
Colin Walters <walters@gnu.org>
parents: 44854
diff changeset
1761 (format "(%s %s)" it (process-status it))
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1762 ""))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1763
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1764 (define-ibuffer-column filename
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1765 (:summarizer
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1766 (lambda (strings)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1767 (let ((total (length (delete "" strings))))
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1768 (cond ((zerop total) "No files")
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1769 ((= 1 total) "1 file")
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1770 (t (format "%d files" total))))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1771 (let ((directory-abbrev-alist ibuffer-directory-abbrev-alist))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1772 (abbreviate-file-name
97396
d122b5da1bae (ibuffer-buffer-file-name): Return nil rather than empty string when
John Paul Wallington <jpw@pobox.com>
parents: 96956
diff changeset
1773 (or (ibuffer-buffer-file-name) ""))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1774
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1775 (define-ibuffer-column filename-and-process
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1776 (:name "Filename/Process"
87960
4693d30bd9c1 * ibuffer.el (ibuffer-default-sorting-mode): Add option to sort by
Dan Nicolaescu <dann@ics.uci.edu>
parents: 87869
diff changeset
1777 :header-mouse-map ibuffer-filename/process-header-map
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1778 :summarizer
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1779 (lambda (strings)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1780 (setq strings (delete "" strings))
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1781 (let ((procs 0)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1782 (files 0))
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1783 (dolist (string strings)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1784 (if (string-match "\\(\?:\\`(\[\[:ascii:\]\]\+)\\)" string)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1785 (progn (setq procs (1+ procs))
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1786 (if (< (match-end 0) (length string))
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1787 (setq files (1+ files))))
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1788 (setq files (1+ files))))
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1789 (concat (cond ((zerop files) "No files")
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1790 ((= 1 files) "1 file")
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1791 (t (format "%d files" files)))
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1792 ", "
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1793 (cond ((zerop procs) "no processes")
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1794 ((= 1 procs) "1 process")
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1795 (t (format "%d processes" procs)))))))
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1796 (let ((proc (get-buffer-process buffer))
45705
650fdcae4092 (ibuffer-mode): Do set `font-lock-defaults', and be sure to set
Colin Walters <walters@gnu.org>
parents: 45687
diff changeset
1797 (filename (ibuffer-make-column-filename buffer mark)))
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1798 (if proc
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1799 (concat (propertize (format "(%s %s)" proc (process-status proc))
45687
434d9f56eab8 (ibuffer-category-alist): Delete.
Colin Walters <walters@gnu.org>
parents: 45443
diff changeset
1800 'font-lock-face 'italic)
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1801 (if (> (length filename) 0)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1802 (format " %s" filename)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
1803 ""))
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1804 filename)))
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1805
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1806 (defun ibuffer-format-column (str width alignment)
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
1807 (let ((left (make-string (/ width 2) ?\s))
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
1808 (right (make-string (- width (/ width 2)) ?\s)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1809 (case alignment
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1810 (:right (concat left right str))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1811 (:center (concat left str right))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1812 (t (concat str left right)))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1813
45687
434d9f56eab8 (ibuffer-category-alist): Delete.
Colin Walters <walters@gnu.org>
parents: 45443
diff changeset
1814 (defun ibuffer-buffer-name-face (buf mark)
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1815 (cond ((char-equal mark ibuffer-marked-char)
45687
434d9f56eab8 (ibuffer-category-alist): Delete.
Colin Walters <walters@gnu.org>
parents: 45443
diff changeset
1816 ibuffer-marked-face)
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1817 ((char-equal mark ibuffer-deletion-char)
45687
434d9f56eab8 (ibuffer-category-alist): Delete.
Colin Walters <walters@gnu.org>
parents: 45443
diff changeset
1818 ibuffer-deletion-face)
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1819 (t
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1820 (let ((level -1)
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1821 result)
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1822 (dolist (e ibuffer-fontification-alist result)
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1823 (when (and (> (car e) level)
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1824 (with-current-buffer buf
45687
434d9f56eab8 (ibuffer-category-alist): Delete.
Colin Walters <walters@gnu.org>
parents: 45443
diff changeset
1825 (eval (nth 1 e))))
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
1826 (setq level (car e)
45687
434d9f56eab8 (ibuffer-category-alist): Delete.
Colin Walters <walters@gnu.org>
parents: 45443
diff changeset
1827 result (nth 2 e))))))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1828
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1829 (defun ibuffer-insert-buffer-line (buffer mark format)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1830 "Insert a line describing BUFFER and MARK using FORMAT."
94977
905940be40d9 (ibuffer-assert-ibuffer-mode): New defsubst.
John Paul Wallington <jpw@pobox.com>
parents: 94905
diff changeset
1831 (ibuffer-assert-ibuffer-mode)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1832 (let ((beg (point)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1833 (funcall format buffer mark)
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1834 (put-text-property beg (point) 'ibuffer-properties (list buffer mark)))
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1835 (insert "\n"))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1836
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1837 ;; This function knows a bit too much of the internals. It would be
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1838 ;; nice if it was all abstracted away.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1839 (defun ibuffer-redisplay-current ()
94977
905940be40d9 (ibuffer-assert-ibuffer-mode): New defsubst.
John Paul Wallington <jpw@pobox.com>
parents: 94905
diff changeset
1840 (ibuffer-assert-ibuffer-mode)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1841 (when (eobp)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1842 (forward-line -1))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1843 (beginning-of-line)
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1844 (let ((curformat (mapcar #'ibuffer-expand-format-entry
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1845 (ibuffer-current-format t))))
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1846 (ibuffer-clear-summary-columns curformat)
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1847 (let ((buf (ibuffer-current-buffer)))
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1848 (when buf
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1849 (let ((mark (ibuffer-current-mark)))
43873
2ce5d75bd538 (ibuffer-redisplay-current): Don't move point when redisplaying a
Colin Walters <walters@gnu.org>
parents: 43768
diff changeset
1850 (save-excursion
2ce5d75bd538 (ibuffer-redisplay-current): Don't move point when redisplaying a
Colin Walters <walters@gnu.org>
parents: 43768
diff changeset
1851 (delete-region (point) (1+ (line-end-position)))
2ce5d75bd538 (ibuffer-redisplay-current): Don't move point when redisplaying a
Colin Walters <walters@gnu.org>
parents: 43768
diff changeset
1852 (ibuffer-insert-buffer-line
2ce5d75bd538 (ibuffer-redisplay-current): Don't move point when redisplaying a
Colin Walters <walters@gnu.org>
parents: 43768
diff changeset
1853 buf mark
2ce5d75bd538 (ibuffer-redisplay-current): Don't move point when redisplaying a
Colin Walters <walters@gnu.org>
parents: 43768
diff changeset
1854 (ibuffer-current-format)))
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1855 (when ibuffer-shrink-to-minimum-size
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
1856 (ibuffer-shrink-to-fit)))))))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
1857
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1858 (defun ibuffer-map-on-mark (mark func)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1859 (ibuffer-map-lines
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1860 #'(lambda (buf mk)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1861 (if (char-equal mark mk)
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1862 (funcall func buf mark)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1863 nil))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1864
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1865 (defun ibuffer-map-lines (function &optional nomodify group)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1866 "Call FUNCTION for each buffer.
78492
7c8949dbfa0d Replace `iff' in doc-strings and comments.
Glenn Morris <rgm@gnu.org>
parents: 78236
diff changeset
1867 Set the ibuffer modification flag unless NOMODIFY is non-nil.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1868
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1869 If optional argument GROUP is non-nil, then only call FUNCTION on
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1870 buffers in filtering group GROUP.
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1871
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1872 FUNCTION is called with two arguments:
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1873 the buffer object itself and the current mark symbol."
94977
905940be40d9 (ibuffer-assert-ibuffer-mode): New defsubst.
John Paul Wallington <jpw@pobox.com>
parents: 94905
diff changeset
1874 (ibuffer-assert-ibuffer-mode)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1875 (ibuffer-forward-line 0)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1876 (let* ((orig-target-line (1+ (count-lines (save-excursion
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1877 (goto-char (point-min))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1878 (ibuffer-forward-line 0)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1879 (point))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1880 (point))))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1881 (target-line-offset orig-target-line)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1882 (ibuffer-map-lines-total 0)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1883 (ibuffer-map-lines-count 0))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1884 (unwind-protect
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1885 (progn
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1886 (setq buffer-read-only nil)
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1887 (goto-char (point-min))
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1888 (ibuffer-forward-line 0 t)
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1889 (while (and (not (eobp))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1890 (not (get-text-property (point) 'ibuffer-summary))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1891 (progn
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1892 (ibuffer-forward-line 0 t)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1893 (and (not (eobp))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1894 (not (get-text-property (point) 'ibuffer-summary)))))
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1895 (let ((result
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1896 (if (buffer-live-p (ibuffer-current-buffer))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1897 (when (or (null group)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1898 (ibuffer-aif (get-text-property (point) 'ibuffer-filter-group)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1899 (equal group it)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1900 (save-excursion
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1901 (funcall function
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1902 (ibuffer-current-buffer)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1903 (ibuffer-current-mark))))
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1904 ;; Kill the line if the buffer is dead
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1905 'kill)))
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1906 ;; A given mapping function should return:
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1907 ;; `nil' if it chose not to affect the buffer
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1908 ;; `kill' means the remove line from the buffer list
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1909 ;; `t' otherwise
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1910 (incf ibuffer-map-lines-total)
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1911 (cond ((null result)
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1912 (forward-line 1))
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1913 ((eq result 'kill)
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1914 (delete-region (line-beginning-position)
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1915 (1+ (line-end-position)))
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1916 (incf ibuffer-map-lines-count)
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1917 (when (< ibuffer-map-lines-total
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1918 orig-target-line)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1919 (decf target-line-offset)))
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1920 (t
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1921 (incf ibuffer-map-lines-count)
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1922 (forward-line 1)))))
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1923 ibuffer-map-lines-count)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1924 (progn
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1925 (setq buffer-read-only t)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1926 (unless nomodify
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1927 (set-buffer-modified-p nil))
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1928 (goto-char (point-min))
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
1929 (ibuffer-forward-line 0)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1930 (ibuffer-forward-line (1- target-line-offset))))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1931
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1932 (defun ibuffer-get-marked-buffers ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1933 "Return a list of buffer objects currently marked."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1934 (delq nil
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1935 (mapcar #'(lambda (e)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1936 (when (eq (cdr e) ibuffer-marked-char)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1937 (car e)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1938 (ibuffer-current-state-list))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1939
44659
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1940 (defun ibuffer-current-state-list (&optional pos)
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1941 "Return a list like (BUF . MARK) of all buffers in an ibuffer.
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1942 If POS is non-nil, return a list like (BUF MARK POINT), where POINT is
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1943 the value of point at the beginning of the line for that buffer."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1944 (let ((ibuffer-current-state-list-tmp '()))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1945 ;; ah, if only we had closures. I bet this will mysteriously
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1946 ;; break later. Don't blame me.
44659
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1947 (if pos
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1948 (ibuffer-map-lines-nomodify
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1949 #'(lambda (buf mark)
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1950 (when (buffer-live-p buf)
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1951 (push (list buf mark (point)) ibuffer-current-state-list-tmp))))
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1952 (ibuffer-map-lines-nomodify
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1953 #'(lambda (buf mark)
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1954 (when (buffer-live-p buf)
9d84a456037d (ibuffer-visit-buffer): Optionally allow reducing to one window.
Colin Walters <walters@gnu.org>
parents: 44571
diff changeset
1955 (push (cons buf mark) ibuffer-current-state-list-tmp)))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1956 (nreverse ibuffer-current-state-list-tmp)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1957
44501
5fa7b088231f Fix previous change.
Colin Walters <walters@gnu.org>
parents: 44482
diff changeset
1958 (defun ibuffer-current-buffers-with-marks (curbufs)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1959 "Return a list like (BUF . MARK) of all open buffers."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1960 (let ((bufs (ibuffer-current-state-list)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1961 (mapcar #'(lambda (buf) (let ((e (assq buf bufs)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1962 (if e
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1963 e
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
1964 (cons buf ?\s))))
44501
5fa7b088231f Fix previous change.
Colin Walters <walters@gnu.org>
parents: 44482
diff changeset
1965 curbufs)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1966
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1967 (defun ibuffer-buf-matches-predicates (buf predicates)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1968 (let ((hit nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1969 (name (buffer-name buf)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1970 (dolist (pred predicates)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1971 (when (if (stringp pred)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1972 (string-match pred name)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1973 (funcall pred buf))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1974 (setq hit t)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1975 hit))
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
1976
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1977 (defun ibuffer-filter-buffers (ibuffer-buf last bmarklist all)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1978 (let ((ext-loaded (featurep 'ibuf-ext)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1979 (delq nil
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1980 (mapcar
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1981 ;; element should be like (BUFFER . MARK)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1982 #'(lambda (e)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1983 (let* ((buf (car e)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1984 (when
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1985 ;; This takes precedence over anything else
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1986 (or (and ibuffer-always-show-last-buffer
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1987 (eq last buf))
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1988 (funcall (if ext-loaded
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1989 #'ibuffer-ext-visible-p
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1990 #'ibuffer-visible-p)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
1991 buf all ibuffer-buf))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1992 e)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
1993 bmarklist))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1994
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1995 (defun ibuffer-visible-p (buf all &optional ibuffer-buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1996 (and (or all
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1997 (not
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1998 (ibuffer-buf-matches-predicates buf ibuffer-maybe-show-predicates)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
1999 (or ibuffer-view-ibuffer
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
2000 (and ibuffer-buf
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2001 (not (eq ibuffer-buf buf))))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2002
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2003 ;; This function is a special case; it's not defined by
72564
976ef29e497e * woman.el (woman-follow): New function, based on `man-follow'.
Chong Yidong <cyd@stupidchicken.com>
parents: 72073
diff changeset
2004 ;; `define-ibuffer-sorter'.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2005 (defun ibuffer-do-sort-by-recency ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2006 "Sort the buffers by last view time."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2007 (interactive)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2008 (setq ibuffer-sorting-mode 'recency)
94507
f72e4491c400 (ibuffer-last-sorting-mode): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 94501
diff changeset
2009 (when (eq ibuffer-last-sorting-mode 'recency)
f72e4491c400 (ibuffer-last-sorting-mode): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 94501
diff changeset
2010 (setq ibuffer-sorting-reversep (not ibuffer-sorting-reversep)))
f72e4491c400 (ibuffer-last-sorting-mode): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 94501
diff changeset
2011 (ibuffer-update nil t)
f72e4491c400 (ibuffer-last-sorting-mode): New variable.
John Paul Wallington <jpw@pobox.com>
parents: 94501
diff changeset
2012 (setq ibuffer-last-sorting-mode 'recency))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2013
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2014 (defun ibuffer-update-format ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2015 (when (null ibuffer-current-format)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2016 (setq ibuffer-current-format 0))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2017 (when (null ibuffer-formats)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2018 (error "Ibuffer error: no formats!")))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2019
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2020 (defun ibuffer-switch-format ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2021 "Switch the current display format."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2022 (interactive)
94977
905940be40d9 (ibuffer-assert-ibuffer-mode): New defsubst.
John Paul Wallington <jpw@pobox.com>
parents: 94905
diff changeset
2023 (ibuffer-assert-ibuffer-mode)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2024 (unless (consp ibuffer-formats)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2025 (error "Ibuffer error: No formats!"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2026 (setq ibuffer-current-format
43249
783a6eac348c (ibuffer-switch-format): Supply required argument for
Colin Walters <walters@gnu.org>
parents: 43104
diff changeset
2027 (if (>= ibuffer-current-format (1- (length (ibuffer-current-formats nil))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2028 0
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2029 (1+ ibuffer-current-format)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2030 (ibuffer-update-format)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2031 (ibuffer-redisplay t))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2032
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
2033 (defun ibuffer-update-title-and-summary (format)
94977
905940be40d9 (ibuffer-assert-ibuffer-mode): New defsubst.
John Paul Wallington <jpw@pobox.com>
parents: 94905
diff changeset
2034 (ibuffer-assert-ibuffer-mode)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2035 ;; Don't do funky font-lock stuff here
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2036 (let ((after-change-functions nil))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2037 (if (get-text-property (point-min) 'ibuffer-title)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2038 (delete-region (point-min)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2039 (next-single-property-change
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2040 (point-min) 'ibuffer-title)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2041 (goto-char (point-min))
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
2042 (add-text-properties
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2043 (point)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2044 (progn
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2045 (let ((opos (point)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2046 ;; Insert the title names.
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
2047 (dolist (element format)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2048 (insert
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2049 (if (stringp element)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2050 element
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2051 (let ((sym (car element))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2052 (min (cadr element))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2053 ;; (max (caddr element))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2054 (align (cadddr element)))
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
2055 ;; Ignore a negative min when we're inserting the title
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2056 (when (minusp min)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2057 (setq min (- min)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2058 (let* ((name (or (get sym 'ibuffer-column-name)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2059 (error "Unknown column %s in ibuffer-formats" sym)))
69764
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
2060 (len (length name))
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
2061 (hmap (get sym 'header-mouse-map))
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
2062 (strname (if (< len min)
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
2063 (ibuffer-format-column name
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
2064 (- min len)
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
2065 align)
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
2066 name)))
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
2067 (when hmap
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
2068 (setq
102210
d7624c39682b * ibuffer.el (ibuffer-redisplay-engine): Avoid "Mark set" message clobbering
Juanma Barranquero <lekktu@gmail.com>
parents: 100908
diff changeset
2069 strname
69764
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
2070 (propertize strname 'mouse-face 'highlight 'keymap hmap)))
986a4b641e9e * ibuf-macs.el (define-ibuffer-column): Add a new key:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 68582
diff changeset
2071 strname)))))
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
2072 (add-text-properties opos (point) `(ibuffer-title-header t))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2073 (insert "\n")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2074 ;; Add the underlines
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2075 (let ((str (save-excursion
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2076 (forward-line -1)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2077 (beginning-of-line)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2078 (buffer-substring (point) (line-end-position)))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2079 (apply #'insert (mapcar
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2080 #'(lambda (c)
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2081 (if (not (or (char-equal c ?\s)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2082 (char-equal c ?\n)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2083 ?-
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2084 ?\s))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2085 str)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2086 (insert "\n"))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2087 (point))
45687
434d9f56eab8 (ibuffer-category-alist): Delete.
Colin Walters <walters@gnu.org>
parents: 45443
diff changeset
2088 `(ibuffer-title t font-lock-face ,ibuffer-title-face))
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
2089 ;; Now, insert the summary columns.
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
2090 (goto-char (point-max))
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
2091 (if (get-text-property (1- (point-max)) 'ibuffer-summary)
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
2092 (delete-region (previous-single-property-change
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
2093 (point-max) 'ibuffer-summary)
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
2094 (point-max)))
51074
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2095 (if ibuffer-display-summary
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2096 (add-text-properties
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2097 (point)
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2098 (progn
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2099 (insert "\n")
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2100 (dolist (element format)
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2101 (insert
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2102 (if (stringp element)
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2103 (make-string (length element) ?\s)
51074
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2104 (let ((sym (car element)))
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2105 (let ((min (cadr element))
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2106 ;; (max (caddr element))
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2107 (align (cadddr element)))
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2108 ;; Ignore a negative min when we're inserting the title
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2109 (when (minusp min)
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2110 (setq min (- min)))
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2111 (let* ((summary (if (get sym 'ibuffer-column-summarizer)
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2112 (funcall (get sym 'ibuffer-column-summarizer)
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2113 (get sym 'ibuffer-column-summary))
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2114 (make-string (length (get sym 'ibuffer-column-name))
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2115 ?\s)))
51074
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2116 (len (length summary)))
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2117 (if (< len min)
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2118 (ibuffer-format-column summary
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2119 (- min len)
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2120 align)
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2121 summary)))))))
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2122 (point))
9765d874366d (ibuffer-display-summary): New customizable variable.
John Paul Wallington <jpw@pobox.com>
parents: 50708
diff changeset
2123 `(ibuffer-summary t)))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2124
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2125
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2126 (defun ibuffer-redisplay (&optional silent)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2127 "Redisplay the current list of buffers.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2128 This does not show new buffers; use `ibuffer-update' for that.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2129
48343
35889dbb9b84 (ibuffer-use-other-window, ibuffer-use-header-line)
John Paul Wallington <jpw@pobox.com>
parents: 48058
diff changeset
2130 If optional arg SILENT is non-nil, do not display progress messages."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2131 (interactive)
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
2132 (ibuffer-forward-line 0)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2133 (unless silent
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2134 (message "Redisplaying current buffer list..."))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2135 (let ((blist (ibuffer-current-state-list)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2136 (when (null blist)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2137 (if (and (featurep 'ibuf-ext)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2138 (or ibuffer-filtering-qualifiers ibuffer-hidden-filter-groups))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2139 (message "No buffers! (note: filtering in effect)")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2140 (error "No buffers!")))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2141 (ibuffer-redisplay-engine blist t)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2142 (unless silent
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
2143 (message "Redisplaying current buffer list...done"))
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
2144 (ibuffer-forward-line 0)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2145
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2146 (defun ibuffer-update (arg &optional silent)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2147 "Regenerate the list of all buffers.
57563
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
2148
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
2149 Prefix arg non-nil means to toggle whether buffers that match
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
2150 `ibuffer-maybe-show-predicates' should be displayed.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2151
48343
35889dbb9b84 (ibuffer-use-other-window, ibuffer-use-header-line)
John Paul Wallington <jpw@pobox.com>
parents: 48058
diff changeset
2152 If optional arg SILENT is non-nil, do not display progress messages."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2153 (interactive "P")
57563
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
2154 (if arg
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
2155 (setq ibuffer-display-maybe-show-predicates
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
2156 (not ibuffer-display-maybe-show-predicates)))
44571
be1cb50b8859 (ibuffer-forward-line): Just skip header if we're
Colin Walters <walters@gnu.org>
parents: 44501
diff changeset
2157 (ibuffer-forward-line 0)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2158 (let* ((bufs (buffer-list))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2159 (blist (ibuffer-filter-buffers
47114
b0e4184605e5 * ibuffer.el (ibuffer-update): Use `minibufferp'. Expand `caddr'.
John Paul Wallington <jpw@pobox.com>
parents: 46824
diff changeset
2160 (current-buffer)
b0e4184605e5 * ibuffer.el (ibuffer-update): Use `minibufferp'. Expand `caddr'.
John Paul Wallington <jpw@pobox.com>
parents: 46824
diff changeset
2161 (if (and
b0e4184605e5 * ibuffer.el (ibuffer-update): Use `minibufferp'. Expand `caddr'.
John Paul Wallington <jpw@pobox.com>
parents: 46824
diff changeset
2162 (cadr bufs)
b0e4184605e5 * ibuffer.el (ibuffer-update): Use `minibufferp'. Expand `caddr'.
John Paul Wallington <jpw@pobox.com>
parents: 46824
diff changeset
2163 (eq ibuffer-always-show-last-buffer
b0e4184605e5 * ibuffer.el (ibuffer-update): Use `minibufferp'. Expand `caddr'.
John Paul Wallington <jpw@pobox.com>
parents: 46824
diff changeset
2164 :nomini)
47624
dbdc31f1646b (ibuffer-update): Call `minibufferp' with argument
John Paul Wallington <jpw@pobox.com>
parents: 47378
diff changeset
2165 (minibufferp (cadr bufs)))
47147
bee830f164b7 (ibuffer-update): Revert expansion of `caddr'.
John Paul Wallington <jpw@pobox.com>
parents: 47114
diff changeset
2166 (caddr bufs)
47114
b0e4184605e5 * ibuffer.el (ibuffer-update): Use `minibufferp'. Expand `caddr'.
John Paul Wallington <jpw@pobox.com>
parents: 46824
diff changeset
2167 (cadr bufs))
b0e4184605e5 * ibuffer.el (ibuffer-update): Use `minibufferp'. Expand `caddr'.
John Paul Wallington <jpw@pobox.com>
parents: 46824
diff changeset
2168 (ibuffer-current-buffers-with-marks bufs)
57563
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
2169 ibuffer-display-maybe-show-predicates)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2170 (when (null blist)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2171 (if (and (featurep 'ibuf-ext)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2172 ibuffer-filtering-qualifiers)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2173 (message "No buffers! (note: filtering in effect)")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2174 (error "No buffers!")))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2175 (unless silent
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2176 (message "Updating buffer list..."))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2177 (ibuffer-redisplay-engine blist arg)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2178 (unless silent
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2179 (message "Updating buffer list...done")))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2180 (if (eq ibuffer-shrink-to-minimum-size 'onewindow)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2181 (ibuffer-shrink-to-fit t)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2182 (when ibuffer-shrink-to-minimum-size
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2183 (ibuffer-shrink-to-fit)))
91782
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2184 (ibuffer-forward-line 0)
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2185 ;; I tried to update this automatically from the mode-line-process format,
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2186 ;; but changing nil-ness of header-line-format while computing
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2187 ;; mode-line-format is asking a bit too much it seems. --Stef
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2188 (setq header-line-format
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2189 (and ibuffer-use-header-line
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2190 ibuffer-filtering-qualifiers
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2191 ibuffer-header-line-format)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2192
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2193 (defun ibuffer-sort-bufferlist (bmarklist)
100232
518a4346ef68 * ibuffer.el (ibuffer-sort-bufferlist): Require ibuf-ext
Juanma Barranquero <lekktu@gmail.com>
parents: 98561
diff changeset
2194 (unless ibuffer-sorting-functions-alist
518a4346ef68 * ibuffer.el (ibuffer-sort-bufferlist): Require ibuf-ext
Juanma Barranquero <lekktu@gmail.com>
parents: 98561
diff changeset
2195 ;; make sure the sorting functions are loaded
518a4346ef68 * ibuffer.el (ibuffer-sort-bufferlist): Require ibuf-ext
Juanma Barranquero <lekktu@gmail.com>
parents: 98561
diff changeset
2196 (require 'ibuf-ext))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2197 (let* ((sortdat (assq ibuffer-sorting-mode
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2198 ibuffer-sorting-functions-alist))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2199 (func (caddr sortdat)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2200 (let ((result
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2201 ;; actually sort the buffers
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2202 (if (and sortdat func)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2203 (sort bmarklist func)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2204 bmarklist)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2205 ;; perhaps reverse the sorted buffer list
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2206 (if ibuffer-sorting-reversep
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2207 (nreverse result)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2208 result))))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2209
45270
087cbd1a5087 (ibuffer-insert-filter-group): New argument filter-string.
Colin Walters <walters@gnu.org>
parents: 45220
diff changeset
2210 (defun ibuffer-insert-filter-group (name display-name filter-string format bmarklist)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2211 (add-text-properties
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2212 (point)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2213 (progn
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2214 (insert "[ " display-name " ]")
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2215 (point))
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
2216 `(ibuffer-filter-group-name
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
2217 ,name
45687
434d9f56eab8 (ibuffer-category-alist): Delete.
Colin Walters <walters@gnu.org>
parents: 45443
diff changeset
2218 font-lock-face ,ibuffer-filter-group-name-face
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
2219 keymap ,ibuffer-mode-filter-group-map
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
2220 mouse-face highlight
50444
2ca336b1259d (ibuffer-insert-filter-group): `help-echo' text property dynamically
John Paul Wallington <jpw@pobox.com>
parents: 49723
diff changeset
2221 help-echo ,(let ((echo '(if tooltip-mode
2ca336b1259d (ibuffer-insert-filter-group): `help-echo' text property dynamically
John Paul Wallington <jpw@pobox.com>
parents: 49723
diff changeset
2222 "mouse-1: toggle marks in this group\nmouse-2: hide/show this filtering group"
50448
6ced6cabcc81 (ibuffer-insert-filter-group): Fix spazz.
John Paul Wallington <jpw@pobox.com>
parents: 50444
diff changeset
2223 "mouse-1: toggle marks mouse-2: hide/show")))
50444
2ca336b1259d (ibuffer-insert-filter-group): `help-echo' text property dynamically
John Paul Wallington <jpw@pobox.com>
parents: 49723
diff changeset
2224 (if (> (length filter-string) 0)
50448
6ced6cabcc81 (ibuffer-insert-filter-group): Fix spazz.
John Paul Wallington <jpw@pobox.com>
parents: 50444
diff changeset
2225 `(concat ,filter-string
6ced6cabcc81 (ibuffer-insert-filter-group): Fix spazz.
John Paul Wallington <jpw@pobox.com>
parents: 50444
diff changeset
2226 (if tooltip-mode "\n" " ")
6ced6cabcc81 (ibuffer-insert-filter-group): Fix spazz.
John Paul Wallington <jpw@pobox.com>
parents: 50444
diff changeset
2227 ,echo)
50444
2ca336b1259d (ibuffer-insert-filter-group): `help-echo' text property dynamically
John Paul Wallington <jpw@pobox.com>
parents: 49723
diff changeset
2228 echo))))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2229 (insert "\n")
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2230 (when bmarklist
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2231 (put-text-property
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2232 (point)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2233 (progn
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2234 (dolist (entry bmarklist)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2235 (ibuffer-insert-buffer-line (car entry) (cdr entry) format))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2236 (point))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2237 'ibuffer-filter-group
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2238 name)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2239
57563
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
2240 (defun ibuffer-redisplay-engine (bmarklist &optional ignore)
94977
905940be40d9 (ibuffer-assert-ibuffer-mode): New defsubst.
John Paul Wallington <jpw@pobox.com>
parents: 94905
diff changeset
2241 (ibuffer-assert-ibuffer-mode)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2242 (let* ((--ibuffer-insert-buffers-and-marks-format
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2243 (ibuffer-current-format))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2244 (--ibuffer-expanded-format (mapcar #'ibuffer-expand-format-entry
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2245 (ibuffer-current-format t)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2246 (orig (count-lines (point-min) (point)))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2247 ;; Inhibit font-lock caching tricks, since we're modifying the
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2248 ;; entire buffer at once
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2249 (after-change-functions nil)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2250 (ext-loaded (featurep 'ibuf-ext))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2251 (bgroups (if ext-loaded
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2252 (ibuffer-generate-filter-groups bmarklist)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2253 (list (cons "Default" bmarklist)))))
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
2254 (ibuffer-clear-summary-columns --ibuffer-expanded-format)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2255 (unwind-protect
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2256 (progn
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2257 (setq buffer-read-only nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2258 (erase-buffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2259 (ibuffer-update-format)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2260 (dolist (group (nreverse bgroups))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2261 (let* ((name (car group))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2262 (disabled (and ext-loaded
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2263 (member name ibuffer-hidden-filter-groups)))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2264 (bmarklist (cdr group)))
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2265 (unless (and (null bmarklist)
55388
7df6b4d2d69d 2004-05-06 Romain Francoise <romain@orebokech.com> (tiny change)
John Paul Wallington <jpw@pobox.com>
parents: 54813
diff changeset
2266 (not disabled)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2267 ext-loaded
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2268 (null ibuffer-show-empty-filter-groups))
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2269 (ibuffer-insert-filter-group
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2270 name
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2271 (if disabled (concat name " ...") name)
45270
087cbd1a5087 (ibuffer-insert-filter-group): New argument filter-string.
Colin Walters <walters@gnu.org>
parents: 45220
diff changeset
2272 (if ext-loaded
087cbd1a5087 (ibuffer-insert-filter-group): New argument filter-string.
Colin Walters <walters@gnu.org>
parents: 45220
diff changeset
2273 (ibuffer-format-filter-group-data name)
087cbd1a5087 (ibuffer-insert-filter-group): New argument filter-string.
Colin Walters <walters@gnu.org>
parents: 45220
diff changeset
2274 "")
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2275 --ibuffer-insert-buffers-and-marks-format
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2276 (if disabled
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2277 nil
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2278 (ibuffer-sort-bufferlist bmarklist))))))
43768
643faa52276e (ibuffer-update-mode-name): Substitute "view time" instead of
Colin Walters <walters@gnu.org>
parents: 43489
diff changeset
2279 (ibuffer-update-title-and-summary --ibuffer-expanded-format))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2280 (setq buffer-read-only t)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2281 (set-buffer-modified-p ibuffer-did-modification)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2282 (setq ibuffer-did-modification nil)
102270
fd0e4d67e735 * bs.el (bs--down):
Juanma Barranquero <lekktu@gmail.com>
parents: 102210
diff changeset
2283 (goto-char (point-min))
102210
d7624c39682b * ibuffer.el (ibuffer-redisplay-engine): Avoid "Mark set" message clobbering
Juanma Barranquero <lekktu@gmail.com>
parents: 100908
diff changeset
2284 (forward-line orig))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2285
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2286 (defun ibuffer-quit ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2287 "Quit this `ibuffer' session.
78492
7c8949dbfa0d Replace `iff' in doc-strings and comments.
Glenn Morris <rgm@gnu.org>
parents: 78236
diff changeset
2288 Try to restore the previous window configuration if
54813
59f2a23a44d1 (ibuffer-delete-window-on-quit): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 52401
diff changeset
2289 `ibuffer-restore-window-config-on-quit' is non-nil."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2290 (interactive)
54813
59f2a23a44d1 (ibuffer-delete-window-on-quit): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 52401
diff changeset
2291 (if ibuffer-restore-window-config-on-quit
56630
50923476a86f (define-ibuffer-column size): Use string-to-number instead of string-to-int.
John Paul Wallington <jpw@pobox.com>
parents: 56337
diff changeset
2292 (progn
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2293 (bury-buffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2294 (unless (= (count-windows) 1)
54813
59f2a23a44d1 (ibuffer-delete-window-on-quit): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 52401
diff changeset
2295 (set-window-configuration ibuffer-prev-window-config)))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2296 (bury-buffer)))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2297
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2298 ;;;###autoload
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2299 (defun ibuffer-list-buffers (&optional files-only)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2300 "Display a list of buffers, in another window.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2301 If optional argument FILES-ONLY is non-nil, then add a filter for
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2302 buffers which are visiting a file."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2303 (interactive "P")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2304 (ibuffer t nil (when files-only
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2305 '((filename . ".*"))) t))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2306
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2307 ;;;###autoload
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2308 (defun ibuffer-other-window (&optional files-only)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2309 "Like `ibuffer', but displayed in another window by default.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2310 If optional argument FILES-ONLY is non-nil, then add a filter for
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2311 buffers which are visiting a file."
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2312 (interactive "P")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2313 (ibuffer t nil (when files-only
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2314 '((filename . ".*")))))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2315
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2316 ;;;###autoload
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2317 (defun ibuffer (&optional other-window-p name qualifiers noselect
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
2318 shrink filter-groups formats)
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2319 "Begin using Ibuffer to edit a list of buffers.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2320 Type 'h' after entering ibuffer for more information.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2321
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2322 All arguments are optional.
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2323 OTHER-WINDOW-P says to use another window.
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2324 NAME specifies the name of the buffer (defaults to \"*Ibuffer*\").
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2325 QUALIFIERS is an initial set of filtering qualifiers to use;
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2326 see `ibuffer-filtering-qualifiers'.
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2327 NOSELECT means don't select the Ibuffer buffer.
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2328 SHRINK means shrink the buffer to minimal size. The special
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2329 value `onewindow' means always use another window.
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2330 FILTER-GROUPS is an initial set of filtering groups to use;
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2331 see `ibuffer-filter-groups'.
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2332 FORMATS is the value to use for `ibuffer-formats'.
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2333 If specified, then the variable `ibuffer-formats' will have
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2334 that value locally in this buffer."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2335 (interactive "P")
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2336 (when ibuffer-use-other-window
44137
32c7d9355caf (ibuffer): If the user has `ibuffer-use-other-window' non-nil, then
Colin Walters <walters@gnu.org>
parents: 44021
diff changeset
2337 (setq other-window-p t))
54813
59f2a23a44d1 (ibuffer-delete-window-on-quit): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 52401
diff changeset
2338 (setq ibuffer-prev-window-config (current-window-configuration))
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
2339 (let ((buf (get-buffer-create (or name "*Ibuffer*"))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2340 (if other-window-p
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2341 (funcall (if noselect #'(lambda (buf) (display-buffer buf t)) #'pop-to-buffer) buf)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2342 (funcall (if noselect #'display-buffer #'switch-to-buffer) buf))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2343 (with-current-buffer buf
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2344 (save-selected-window
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2345 ;; We switch to the buffer's window in order to be able
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2346 ;; to modify the value of point
66739
7edb08362291 (ibuffer): Search iconified frames too when getting Ibuffer buffer's window.
John Paul Wallington <jpw@pobox.com>
parents: 66733
diff changeset
2347 (select-window (get-buffer-window buf 0))
51741
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
2348 (or (eq major-mode 'ibuffer-mode)
09f746b0e209 (ibuffer-backward-line, ibuffer-forward-line)
John Paul Wallington <jpw@pobox.com>
parents: 51074
diff changeset
2349 (ibuffer-mode))
54813
59f2a23a44d1 (ibuffer-delete-window-on-quit): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 52401
diff changeset
2350 (setq ibuffer-restore-window-config-on-quit other-window-p)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2351 (when shrink
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2352 (setq ibuffer-shrink-to-minimum-size shrink))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2353 (when qualifiers
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2354 (require 'ibuf-ext)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2355 (setq ibuffer-filtering-qualifiers qualifiers))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2356 (when filter-groups
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2357 (require 'ibuf-ext)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2358 (setq ibuffer-filter-groups filter-groups))
45443
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
2359 (when formats
8fd13e1863ed (toplevel): Require font-lock, to get the face definitions.
Colin Walters <walters@gnu.org>
parents: 45270
diff changeset
2360 (set (make-local-variable 'ibuffer-formats) formats))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2361 (ibuffer-update nil)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2362 ;; Skip the group name by default.
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2363 (ibuffer-forward-line 0 t)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2364 (unwind-protect
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2365 (progn
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2366 (setq buffer-read-only nil)
48343
35889dbb9b84 (ibuffer-use-other-window, ibuffer-use-header-line)
John Paul Wallington <jpw@pobox.com>
parents: 48058
diff changeset
2367 (run-hooks 'ibuffer-hook))
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2368 (setq buffer-read-only t))
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2369 (unless ibuffer-expert
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2370 (message "Commands: m, u, t, RET, g, k, S, D, Q; q to quit; h for help"))))))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2371
44482
510e978b6292 (ibuffer-canonicalize-state-list): Delete unused function.
Colin Walters <walters@gnu.org>
parents: 44245
diff changeset
2372 (put 'ibuffer-mode 'mode-class 'special)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2373 (defun ibuffer-mode ()
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2374 "A major mode for viewing a list of buffers.
64678
2fdca9c174be (ibuffer-columnize-and-insert-list, ibuffer-mouse-toggle-mark,
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
2375 In Ibuffer, you can conveniently perform many operations on the
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2376 currently open buffers, in addition to filtering your view to a
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2377 particular subset of them, and sorting by various criteria.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2378
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2379 Operations on marked buffers:
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2380
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2381 '\\[ibuffer-do-save]' - Save the marked buffers
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2382 '\\[ibuffer-do-view]' - View the marked buffers in this frame.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2383 '\\[ibuffer-do-view-other-frame]' - View the marked buffers in another frame.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2384 '\\[ibuffer-do-revert]' - Revert the marked buffers.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2385 '\\[ibuffer-do-toggle-read-only]' - Toggle read-only state of marked buffers.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2386 '\\[ibuffer-do-delete]' - Kill the marked buffers.
96956
a6f40f87513a (ibuffer-mode-map): Bind "M-s a C-s" to
Juri Linkov <juri@jurta.org>
parents: 96491
diff changeset
2387 '\\[ibuffer-do-isearch]' - Do incremental search in the marked buffers.
a6f40f87513a (ibuffer-mode-map): Bind "M-s a C-s" to
Juri Linkov <juri@jurta.org>
parents: 96491
diff changeset
2388 '\\[ibuffer-do-isearch-regexp]' - Isearch for regexp in the marked buffers.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2389 '\\[ibuffer-do-replace-regexp]' - Replace by regexp in each of the marked
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2390 buffers.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2391 '\\[ibuffer-do-query-replace]' - Query replace in each of the marked buffers.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2392 '\\[ibuffer-do-query-replace-regexp]' - As above, with a regular expression.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2393 '\\[ibuffer-do-print]' - Print the marked buffers.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2394 '\\[ibuffer-do-occur]' - List lines in all marked buffers which match
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2395 a given regexp (like the function `occur').
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2396 '\\[ibuffer-do-shell-command-pipe]' - Pipe the contents of the marked
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2397 buffers to a shell command.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2398 '\\[ibuffer-do-shell-command-pipe-replace]' - Replace the contents of the marked
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2399 buffers with the output of a shell command.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2400 '\\[ibuffer-do-shell-command-file]' - Run a shell command with the
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2401 buffer's file as an argument.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2402 '\\[ibuffer-do-eval]' - Evaluate a form in each of the marked buffers. This
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2403 is a very flexible command. For example, if you want to make all
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2404 of the marked buffers read only, try using (toggle-read-only 1) as
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2405 the input form.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2406 '\\[ibuffer-do-view-and-eval]' - As above, but view each buffer while the form
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2407 is evaluated.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2408 '\\[ibuffer-do-kill-lines]' - Remove the marked lines from the *Ibuffer* buffer,
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2409 but don't kill the associated buffer.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2410 '\\[ibuffer-do-kill-on-deletion-marks]' - Kill all buffers marked for deletion.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2411
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2412 Marking commands:
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2413
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2414 '\\[ibuffer-mark-forward]' - Mark the buffer at point.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2415 '\\[ibuffer-toggle-marks]' - Unmark all currently marked buffers, and mark
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2416 all unmarked buffers.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2417 '\\[ibuffer-unmark-forward]' - Unmark the buffer at point.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2418 '\\[ibuffer-unmark-backward]' - Unmark the buffer at point, and move to the
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2419 previous line.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2420 '\\[ibuffer-unmark-all]' - Unmark all marked buffers.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2421 '\\[ibuffer-mark-by-mode]' - Mark buffers by major mode.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2422 '\\[ibuffer-mark-unsaved-buffers]' - Mark all \"unsaved\" buffers.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2423 This means that the buffer is modified, and has an associated file.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2424 '\\[ibuffer-mark-modified-buffers]' - Mark all modified buffers,
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2425 regardless of whether or not they have an associated file.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2426 '\\[ibuffer-mark-special-buffers]' - Mark all buffers whose name begins and
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2427 ends with '*'.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2428 '\\[ibuffer-mark-dissociated-buffers]' - Mark all buffers which have
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2429 an associated file, but that file doesn't currently exist.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2430 '\\[ibuffer-mark-read-only-buffers]' - Mark all read-only buffers.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2431 '\\[ibuffer-mark-dired-buffers]' - Mark buffers in `dired' mode.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2432 '\\[ibuffer-mark-help-buffers]' - Mark buffers in `help-mode', `apropos-mode', etc.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2433 '\\[ibuffer-mark-old-buffers]' - Mark buffers older than `ibuffer-old-time'.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2434 '\\[ibuffer-mark-for-delete]' - Mark the buffer at point for deletion.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2435 '\\[ibuffer-mark-by-name-regexp]' - Mark buffers by their name, using a regexp.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2436 '\\[ibuffer-mark-by-mode-regexp]' - Mark buffers by their major mode, using a regexp.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2437 '\\[ibuffer-mark-by-file-name-regexp]' - Mark buffers by their filename, using a regexp.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2438
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2439 Filtering commands:
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2440
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2441 '\\[ibuffer-filter-by-mode]' - Add a filter by major mode.
46824
86fa1b4393a2 (ibuffer-mode-map): Added ibuffer-filter-by-used-mode.
Colin Walters <walters@gnu.org>
parents: 46772
diff changeset
2442 '\\[ibuffer-filter-by-used-mode]' - Add a filter by major mode now in use.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2443 '\\[ibuffer-filter-by-name]' - Add a filter by buffer name.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2444 '\\[ibuffer-filter-by-content]' - Add a filter by buffer content.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2445 '\\[ibuffer-filter-by-filename]' - Add a filter by filename.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2446 '\\[ibuffer-filter-by-size-gt]' - Add a filter by buffer size.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2447 '\\[ibuffer-filter-by-size-lt]' - Add a filter by buffer size.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2448 '\\[ibuffer-filter-by-predicate]' - Add a filter by an arbitrary Lisp predicate.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2449 '\\[ibuffer-save-filters]' - Save the current filters with a name.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2450 '\\[ibuffer-switch-to-saved-filters]' - Switch to previously saved filters.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2451 '\\[ibuffer-add-saved-filters]' - Add saved filters to current filters.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2452 '\\[ibuffer-or-filter]' - Replace the top two filters with their logical OR.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2453 '\\[ibuffer-pop-filter]' - Remove the top filter.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2454 '\\[ibuffer-negate-filter]' - Invert the logical sense of the top filter.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2455 '\\[ibuffer-decompose-filter]' - Break down the topmost filter.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2456 '\\[ibuffer-filter-disable]' - Remove all filtering currently in effect.
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2457
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2458 Filter group commands:
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2459
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2460 '\\[ibuffer-filters-to-filter-group]' - Create filter group from filters.
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2461 '\\[ibuffer-pop-filter-group]' - Remove top filter group.
44936
ee04dcf4fae7 (ibuffer-mode): Additional documentation on filter groups.
Colin Walters <walters@gnu.org>
parents: 44870
diff changeset
2462 '\\[ibuffer-forward-filter-group]' - Move to the next filter group.
ee04dcf4fae7 (ibuffer-mode): Additional documentation on filter groups.
Colin Walters <walters@gnu.org>
parents: 44870
diff changeset
2463 '\\[ibuffer-backward-filter-group]' - Move to the previous filter group.
ee04dcf4fae7 (ibuffer-mode): Additional documentation on filter groups.
Colin Walters <walters@gnu.org>
parents: 44870
diff changeset
2464 '\\[ibuffer-clear-filter-groups]' - Remove all active filter groups.
ee04dcf4fae7 (ibuffer-mode): Additional documentation on filter groups.
Colin Walters <walters@gnu.org>
parents: 44870
diff changeset
2465 '\\[ibuffer-save-filter-groups]' - Save the current groups with a name.
ee04dcf4fae7 (ibuffer-mode): Additional documentation on filter groups.
Colin Walters <walters@gnu.org>
parents: 44870
diff changeset
2466 '\\[ibuffer-switch-to-saved-filter-groups]' - Restore previously saved groups.
ee04dcf4fae7 (ibuffer-mode): Additional documentation on filter groups.
Colin Walters <walters@gnu.org>
parents: 44870
diff changeset
2467 '\\[ibuffer-delete-saved-filter-groups]' - Delete previously saved groups.
49588
37645a051842 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49410
diff changeset
2468
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2469 Sorting commands:
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2470
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2471 '\\[ibuffer-toggle-sorting-mode]' - Rotate between the various sorting modes.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2472 '\\[ibuffer-invert-sorting]' - Reverse the current sorting order.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2473 '\\[ibuffer-do-sort-by-alphabetic]' - Sort the buffers lexicographically.
87960
4693d30bd9c1 * ibuffer.el (ibuffer-default-sorting-mode): Add option to sort by
Dan Nicolaescu <dann@ics.uci.edu>
parents: 87869
diff changeset
2474 '\\[ibuffer-do-sort-by-filename/process]' - Sort the buffers by the file name.
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2475 '\\[ibuffer-do-sort-by-recency]' - Sort the buffers by last viewing time.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2476 '\\[ibuffer-do-sort-by-size]' - Sort the buffers by size.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2477 '\\[ibuffer-do-sort-by-major-mode]' - Sort the buffers by major mode.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2478
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2479 Other commands:
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2480
71510
7483188f3c91 (ibuffer-mode): Doc fix.
John Paul Wallington <jpw@pobox.com>
parents: 70489
diff changeset
2481 '\\[ibuffer-update]' - Regenerate the list of all buffers.
7483188f3c91 (ibuffer-mode): Doc fix.
John Paul Wallington <jpw@pobox.com>
parents: 70489
diff changeset
2482 Prefix arg means to toggle whether buffers that match
7483188f3c91 (ibuffer-mode): Doc fix.
John Paul Wallington <jpw@pobox.com>
parents: 70489
diff changeset
2483 `ibuffer-maybe-show-predicates' should be displayed.
7483188f3c91 (ibuffer-mode): Doc fix.
John Paul Wallington <jpw@pobox.com>
parents: 70489
diff changeset
2484
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2485 '\\[ibuffer-switch-format]' - Change the current display format.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2486 '\\[forward-line]' - Move point to the next line.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2487 '\\[previous-line]' - Move point to the previous line.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2488 '\\[ibuffer-quit]' - Bury the Ibuffer buffer.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2489 '\\[describe-mode]' - This help.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2490 '\\[ibuffer-diff-with-file]' - View the differences between this buffer
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2491 and its associated file.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2492 '\\[ibuffer-visit-buffer]' - View the buffer on this line.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2493 '\\[ibuffer-visit-buffer-other-window]' - As above, but in another window.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2494 '\\[ibuffer-visit-buffer-other-window-noselect]' - As both above, but don't select
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2495 the new window.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2496 '\\[ibuffer-bury-buffer]' - Bury (not kill!) the buffer on this line.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2497
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2498 ** Information on Filtering:
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2499
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2500 You can filter your ibuffer view via different critera. Each Ibuffer
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2501 buffer has its own stack of active filters. For example, suppose you
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2502 are working on an Emacs Lisp project. You can create an Ibuffer
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2503 buffer displays buffers in just `emacs-lisp' modes via
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2504 '\\[ibuffer-filter-by-mode] emacs-lisp-mode RET'. In this case, there
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2505 is just one entry on the filtering stack.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2506
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2507 You can also combine filters. The various filtering commands push a
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2508 new filter onto the stack, and the filters combine to show just
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2509 buffers which satisfy ALL criteria on the stack. For example, suppose
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2510 you only want to see buffers in `emacs-lisp' mode, whose names begin
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2511 with \"gnus\". You can accomplish this via:
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2512 '\\[ibuffer-filter-by-mode] emacs-lisp-mode RET
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2513 \\[ibuffer-filter-by-name] ^gnus RET'.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2514
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2515 Additionally, you can OR the top two filters together with
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2516 '\\[ibuffer-or-filters]'. To see all buffers in either
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2517 `emacs-lisp-mode' or `lisp-interaction-mode', type:
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2518
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2519 '\\[ibuffer-filter-by-mode] emacs-lisp-mode RET \\[ibuffer-filter-by-mode] lisp-interaction-mode RET \\[ibuffer-or-filters]'.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2520
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2521 Filters can also be saved and restored using mnemonic names: see the
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2522 functions `ibuffer-save-filters' and `ibuffer-switch-to-saved-filters'.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2523
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2524 To remove the top filter on the stack, use '\\[ibuffer-pop-filter]', and
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2525 to disable all filtering currently in effect, use
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2526 '\\[ibuffer-filter-disable]'.
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2527
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2528 ** Filter Groups:
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2529
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2530 Once one has mastered filters, the next logical step up is \"filter
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2531 groups\". A filter group is basically a named group of buffers which
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2532 match a filter, which are displayed together in an Ibuffer buffer. To
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2533 create a filter group, simply use the regular functions to create a
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2534 filter, and then type '\\[ibuffer-filters-to-filter-group]'.
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2535
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2536 A quick example will make things clearer. Suppose that one wants to
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2537 group all of one's Emacs Lisp buffers together. To do this, type
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2538
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2539 '\\[ibuffer-filter-by-mode] emacs-lisp-mode RET \\[ibuffer-filters-to-filter-group] RET emacs lisp buffers RET'
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2540
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2541 You may, of course, name the group whatever you want; it doesn't have
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2542 to be \"emacs lisp buffers\". Filter groups may be composed of any
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2543 arbitrary combination of filters.
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2544
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2545 Just like filters themselves, filter groups act as a stack. Buffers
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2546 will not be displayed multiple times if they would be included in
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2547 multiple filter groups; instead, the first filter group is used. The
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2548 filter groups are displayed in this order of precedence.
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2549
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2550 You may rearrange filter groups by using the regular
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2551 '\\[ibuffer-kill-line]' and '\\[ibuffer-yank]' pair. Yanked groups
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2552 will be inserted before the group at point."
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2553 (kill-all-local-variables)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2554 (use-local-map ibuffer-mode-map)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2555 (setq major-mode 'ibuffer-mode)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2556 (setq mode-name "Ibuffer")
87791
179da0eedc24 (mode): Pass the buffer to format-mode-line.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
2557 ;; Include state info next to the mode name.
87817
cc95d10c6900 (ibuffer-mode): Fix typo in previous change.
Glenn Morris <rgm@gnu.org>
parents: 87791
diff changeset
2558 (set (make-local-variable 'mode-line-process)
87867
0fe0f2600ea9 (ibuffer-mode): Fix last change.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87817
diff changeset
2559 '(" by "
0fe0f2600ea9 (ibuffer-mode): Fix last change.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87817
diff changeset
2560 (ibuffer-sorting-mode (:eval (symbol-name ibuffer-sorting-mode))
87791
179da0eedc24 (mode): Pass the buffer to format-mode-line.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
2561 "view time")
179da0eedc24 (mode): Pass the buffer to format-mode-line.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
2562 (ibuffer-sorting-reversep " [rev]")
179da0eedc24 (mode): Pass the buffer to format-mode-line.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
2563 (ibuffer-auto-mode " (Auto)")
179da0eedc24 (mode): Pass the buffer to format-mode-line.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
2564 ;; Only list the filters if they're not already in the header-line.
179da0eedc24 (mode): Pass the buffer to format-mode-line.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
2565 (header-line-format
179da0eedc24 (mode): Pass the buffer to format-mode-line.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
2566 ""
179da0eedc24 (mode): Pass the buffer to format-mode-line.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
2567 (:eval (if (functionp 'ibuffer-format-qualifier)
179da0eedc24 (mode): Pass the buffer to format-mode-line.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
2568 (mapconcat 'ibuffer-format-qualifier
179da0eedc24 (mode): Pass the buffer to format-mode-line.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
2569 ibuffer-filtering-qualifiers ""))))))
91782
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2570 ;; `ibuffer-update' puts this on header-line-format when needed.
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2571 (setq ibuffer-header-line-format
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2572 ;; Display the part that won't be in the mode-line.
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2573 (list* "" mode-name
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2574 (mapcar (lambda (elem)
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2575 (if (eq (car-safe elem) 'header-line-format)
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2576 (nth 2 elem) elem))
c9c3987bcc44 (ibuffer-header-line-format): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87960
diff changeset
2577 mode-line-process)))
87791
179da0eedc24 (mode): Pass the buffer to format-mode-line.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
2578
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2579 (setq buffer-read-only t)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2580 (buffer-disable-undo)
43382
6d5695dd7639 (ibuffer-truncate-lines): New option.
Colin Walters <walters@gnu.org>
parents: 43249
diff changeset
2581 (setq truncate-lines ibuffer-truncate-lines)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2582 ;; This makes things less ugly for Emacs 21 users with a non-nil
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2583 ;; `show-trailing-whitespace'.
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2584 (setq show-trailing-whitespace nil)
48778
d414c281a629 * ibuffer.el (ibuffer-mode): If `show-paren-mode' is enabled,
John Paul Wallington <jpw@pobox.com>
parents: 48485
diff changeset
2585 ;; disable `show-paren-mode' buffer-locally
d414c281a629 * ibuffer.el (ibuffer-mode): If `show-paren-mode' is enabled,
John Paul Wallington <jpw@pobox.com>
parents: 48485
diff changeset
2586 (if (bound-and-true-p show-paren-mode)
d414c281a629 * ibuffer.el (ibuffer-mode): If `show-paren-mode' is enabled,
John Paul Wallington <jpw@pobox.com>
parents: 48485
diff changeset
2587 (set (make-local-variable 'show-paren-mode) nil))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2588 (set (make-local-variable 'revert-buffer-function)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2589 #'ibuffer-update)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2590 (set (make-local-variable 'ibuffer-sorting-mode)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2591 ibuffer-default-sorting-mode)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2592 (set (make-local-variable 'ibuffer-sorting-reversep)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2593 ibuffer-default-sorting-reversep)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2594 (set (make-local-variable 'ibuffer-shrink-to-minimum-size)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2595 ibuffer-default-shrink-to-minimum-size)
57563
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
2596 (set (make-local-variable 'ibuffer-display-maybe-show-predicates)
94a1ed353a39 (ibuffer-default-display-maybe-show-predicates): New customizable
John Paul Wallington <jpw@pobox.com>
parents: 56630
diff changeset
2597 ibuffer-default-display-maybe-show-predicates)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2598 (set (make-local-variable 'ibuffer-filtering-qualifiers) nil)
44854
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2599 (set (make-local-variable 'ibuffer-filter-groups) nil)
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2600 (set (make-local-variable 'ibuffer-filter-group-kill-ring) nil)
6cd35f994b33 (ibuffer-formats): Doc fix.
Colin Walters <walters@gnu.org>
parents: 44830
diff changeset
2601 (set (make-local-variable 'ibuffer-hidden-filter-groups) nil)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2602 (set (make-local-variable 'ibuffer-compiled-formats) nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2603 (set (make-local-variable 'ibuffer-cached-formats) nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2604 (set (make-local-variable 'ibuffer-cached-eliding-string) nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2605 (set (make-local-variable 'ibuffer-cached-elide-long-columns) nil)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2606 (set (make-local-variable 'ibuffer-current-format) nil)
54813
59f2a23a44d1 (ibuffer-delete-window-on-quit): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 52401
diff changeset
2607 (set (make-local-variable 'ibuffer-restore-window-config-on-quit) nil)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2608 (set (make-local-variable 'ibuffer-did-modification) nil)
44830
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2609 (set (make-local-variable 'ibuffer-tmp-hide-regexps) nil)
ce8cb080a127 (ibuffer-filter-group-name-face): New.
Colin Walters <walters@gnu.org>
parents: 44796
diff changeset
2610 (set (make-local-variable 'ibuffer-tmp-show-regexps) nil)
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2611 (define-key ibuffer-mode-map [menu-bar edit] 'undefined)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2612 (define-key ibuffer-mode-map [menu-bar operate] (cons "Operate" ibuffer-mode-operate-map))
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2613 (ibuffer-update-format)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2614 (when ibuffer-default-directory
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2615 (setq default-directory ibuffer-default-directory))
47378
84e278f2225f (ibuffer-mode): Add font-lock-defontify to change-major-mode-hook.
Richard M. Stallman <rms@gnu.org>
parents: 47147
diff changeset
2616 (add-hook 'change-major-mode-hook 'font-lock-defontify nil t)
87791
179da0eedc24 (mode): Pass the buffer to format-mode-line.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
2617 (run-mode-hooks 'ibuffer-mode-hook))
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
2618
104941
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2619
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2620 ;;; Start of automatically extracted autoloads.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2621
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2622 ;;;### (autoloads (ibuffer-do-occur ibuffer-mark-dired-buffers ibuffer-mark-read-only-buffers
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2623 ;;;;;; ibuffer-mark-special-buffers ibuffer-mark-old-buffers ibuffer-mark-compressed-file-buffers
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2624 ;;;;;; ibuffer-mark-help-buffers ibuffer-mark-dissociated-buffers
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2625 ;;;;;; ibuffer-mark-unsaved-buffers ibuffer-mark-modified-buffers
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2626 ;;;;;; ibuffer-mark-by-mode ibuffer-mark-by-file-name-regexp ibuffer-mark-by-mode-regexp
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2627 ;;;;;; ibuffer-mark-by-name-regexp ibuffer-copy-filename-as-kill
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2628 ;;;;;; ibuffer-diff-with-file ibuffer-jump-to-buffer ibuffer-do-kill-lines
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2629 ;;;;;; ibuffer-backwards-next-marked ibuffer-forward-next-marked
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2630 ;;;;;; ibuffer-add-to-tmp-show ibuffer-add-to-tmp-hide ibuffer-bs-show
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2631 ;;;;;; ibuffer-invert-sorting ibuffer-toggle-sorting-mode ibuffer-switch-to-saved-filters
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2632 ;;;;;; ibuffer-add-saved-filters ibuffer-delete-saved-filters ibuffer-save-filters
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2633 ;;;;;; ibuffer-or-filter ibuffer-negate-filter ibuffer-exchange-filters
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2634 ;;;;;; ibuffer-decompose-filter ibuffer-pop-filter ibuffer-filter-disable
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2635 ;;;;;; ibuffer-switch-to-saved-filter-groups ibuffer-delete-saved-filter-groups
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2636 ;;;;;; ibuffer-save-filter-groups ibuffer-yank-filter-group ibuffer-yank
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2637 ;;;;;; ibuffer-kill-line ibuffer-kill-filter-group ibuffer-jump-to-filter-group
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2638 ;;;;;; ibuffer-clear-filter-groups ibuffer-decompose-filter-group
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2639 ;;;;;; ibuffer-pop-filter-group ibuffer-set-filter-groups-by-mode
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2640 ;;;;;; ibuffer-filters-to-filter-group ibuffer-included-in-filters-p
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2641 ;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2642 ;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2643 ;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode
110017
10e66ac64b61 Merge Finder and package-menu functionality.
Chong Yidong <cyd@stupidchicken.com>
parents: 108225
diff changeset
2644 ;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" "fa9822b5ef905f06d8a03dc9ce3a2894")
104941
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2645 ;;; Generated autoloads from ibuf-ext.el
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2646
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2647 (autoload 'ibuffer-auto-mode "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2648 Toggle use of Ibuffer's auto-update facility.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2649 With numeric ARG, enable auto-update if and only if ARG is positive.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2650
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2651 \(fn &optional ARG)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2652
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2653 (autoload 'ibuffer-mouse-filter-by-mode "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2654 Enable or disable filtering by the major mode chosen via mouse.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2655
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2656 \(fn EVENT)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2657
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2658 (autoload 'ibuffer-interactive-filter-by-mode "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2659 Enable or disable filtering by the major mode at point.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2660
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2661 \(fn EVENT-OR-POINT)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2662
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2663 (autoload 'ibuffer-mouse-toggle-filter-group "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2664 Toggle the display status of the filter group chosen with the mouse.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2665
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2666 \(fn EVENT)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2667
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2668 (autoload 'ibuffer-toggle-filter-group "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2669 Toggle the display status of the filter group on this line.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2670
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2671 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2672
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2673 (autoload 'ibuffer-forward-filter-group "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2674 Move point forwards by COUNT filtering groups.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2675
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2676 \(fn &optional COUNT)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2677
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2678 (autoload 'ibuffer-backward-filter-group "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2679 Move point backwards by COUNT filtering groups.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2680
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2681 \(fn &optional COUNT)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2682 (autoload 'ibuffer-do-shell-command-pipe "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2683 (autoload 'ibuffer-do-shell-command-pipe-replace "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2684 (autoload 'ibuffer-do-shell-command-file "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2685 (autoload 'ibuffer-do-eval "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2686 (autoload 'ibuffer-do-view-and-eval "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2687 (autoload 'ibuffer-do-rename-uniquely "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2688 (autoload 'ibuffer-do-revert "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2689 (autoload 'ibuffer-do-isearch "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2690 (autoload 'ibuffer-do-isearch-regexp "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2691 (autoload 'ibuffer-do-replace-regexp "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2692 (autoload 'ibuffer-do-query-replace "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2693 (autoload 'ibuffer-do-query-replace-regexp "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2694 (autoload 'ibuffer-do-print "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2695
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2696 (autoload 'ibuffer-included-in-filters-p "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2697 Not documented
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2698
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2699 \(fn BUF FILTERS)" nil nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2700
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2701 (autoload 'ibuffer-filters-to-filter-group "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2702 Make the current filters into a filtering group.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2703
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2704 \(fn NAME)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2705
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2706 (autoload 'ibuffer-set-filter-groups-by-mode "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2707 Set the current filter groups to filter by mode.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2708
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2709 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2710
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2711 (autoload 'ibuffer-pop-filter-group "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2712 Remove the first filter group.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2713
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2714 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2715
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2716 (autoload 'ibuffer-decompose-filter-group "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2717 Decompose the filter group GROUP into active filters.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2718
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2719 \(fn GROUP)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2720
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2721 (autoload 'ibuffer-clear-filter-groups "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2722 Remove all filter groups.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2723
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2724 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2725
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2726 (autoload 'ibuffer-jump-to-filter-group "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2727 Move point to the filter group whose name is NAME.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2728
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2729 \(fn NAME)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2730
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2731 (autoload 'ibuffer-kill-filter-group "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2732 Kill the filter group named NAME.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2733 The group will be added to `ibuffer-filter-group-kill-ring'.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2734
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2735 \(fn NAME)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2736
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2737 (autoload 'ibuffer-kill-line "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2738 Kill the filter group at point.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2739 See also `ibuffer-kill-filter-group'.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2740
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2741 \(fn &optional ARG INTERACTIVE-P)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2742
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2743 (autoload 'ibuffer-yank "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2744 Yank the last killed filter group before group at point.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2745
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2746 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2747
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2748 (autoload 'ibuffer-yank-filter-group "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2749 Yank the last killed filter group before group named NAME.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2750
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2751 \(fn NAME)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2752
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2753 (autoload 'ibuffer-save-filter-groups "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2754 Save all active filter groups GROUPS as NAME.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2755 They are added to `ibuffer-saved-filter-groups'. Interactively,
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2756 prompt for NAME, and use the current filters.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2757
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2758 \(fn NAME GROUPS)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2759
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2760 (autoload 'ibuffer-delete-saved-filter-groups "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2761 Delete saved filter groups with NAME.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2762 They are removed from `ibuffer-saved-filter-groups'.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2763
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2764 \(fn NAME)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2765
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2766 (autoload 'ibuffer-switch-to-saved-filter-groups "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2767 Set this buffer's filter groups to saved version with NAME.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2768 The value from `ibuffer-saved-filter-groups' is used.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2769
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2770 \(fn NAME)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2771
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2772 (autoload 'ibuffer-filter-disable "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2773 Disable all filters currently in effect in this buffer.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2774
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2775 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2776
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2777 (autoload 'ibuffer-pop-filter "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2778 Remove the top filter in this buffer.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2779
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2780 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2781
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2782 (autoload 'ibuffer-decompose-filter "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2783 Separate the top compound filter (OR, NOT, or SAVED) in this buffer.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2784
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2785 This means that the topmost filter on the filtering stack, which must
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2786 be a complex filter like (OR [name: foo] [mode: bar-mode]), will be
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2787 turned into two separate filters [name: foo] and [mode: bar-mode].
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2788
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2789 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2790
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2791 (autoload 'ibuffer-exchange-filters "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2792 Exchange the top two filters on the stack in this buffer.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2793
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2794 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2795
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2796 (autoload 'ibuffer-negate-filter "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2797 Negate the sense of the top filter in the current buffer.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2798
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2799 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2800
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2801 (autoload 'ibuffer-or-filter "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2802 Replace the top two filters in this buffer with their logical OR.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2803 If optional argument REVERSE is non-nil, instead break the top OR
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2804 filter into parts.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2805
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2806 \(fn &optional REVERSE)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2807
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2808 (autoload 'ibuffer-save-filters "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2809 Save FILTERS in this buffer with name NAME in `ibuffer-saved-filters'.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2810 Interactively, prompt for NAME, and use the current filters.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2811
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2812 \(fn NAME FILTERS)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2813
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2814 (autoload 'ibuffer-delete-saved-filters "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2815 Delete saved filters with NAME from `ibuffer-saved-filters'.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2816
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2817 \(fn NAME)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2818
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2819 (autoload 'ibuffer-add-saved-filters "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2820 Add saved filters from `ibuffer-saved-filters' to this buffer's filters.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2821
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2822 \(fn NAME)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2823
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2824 (autoload 'ibuffer-switch-to-saved-filters "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2825 Set this buffer's filters to filters with NAME from `ibuffer-saved-filters'.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2826
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2827 \(fn NAME)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2828 (autoload 'ibuffer-filter-by-mode "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2829 (autoload 'ibuffer-filter-by-used-mode "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2830 (autoload 'ibuffer-filter-by-name "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2831 (autoload 'ibuffer-filter-by-filename "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2832 (autoload 'ibuffer-filter-by-size-gt "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2833 (autoload 'ibuffer-filter-by-size-lt "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2834 (autoload 'ibuffer-filter-by-content "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2835 (autoload 'ibuffer-filter-by-predicate "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2836
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2837 (autoload 'ibuffer-toggle-sorting-mode "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2838 Toggle the current sorting mode.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2839 Default sorting modes are:
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2840 Recency - the last time the buffer was viewed
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2841 Name - the name of the buffer
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2842 Major Mode - the name of the major mode of the buffer
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2843 Size - the size of the buffer
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2844
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2845 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2846
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2847 (autoload 'ibuffer-invert-sorting "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2848 Toggle whether or not sorting is in reverse order.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2849
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2850 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2851 (autoload 'ibuffer-do-sort-by-major-mode "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2852 (autoload 'ibuffer-do-sort-by-mode-name "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2853 (autoload 'ibuffer-do-sort-by-alphabetic "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2854 (autoload 'ibuffer-do-sort-by-size "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2855 (autoload 'ibuffer-do-sort-by-filename/process "ibuf-ext")
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2856
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2857 (autoload 'ibuffer-bs-show "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2858 Emulate `bs-show' from the bs.el package.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2859
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2860 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2861
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2862 (autoload 'ibuffer-add-to-tmp-hide "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2863 Add REGEXP to `ibuffer-tmp-hide-regexps'.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2864 This means that buffers whose name matches REGEXP will not be shown
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2865 for this Ibuffer session.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2866
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2867 \(fn REGEXP)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2868
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2869 (autoload 'ibuffer-add-to-tmp-show "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2870 Add REGEXP to `ibuffer-tmp-show-regexps'.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2871 This means that buffers whose name matches REGEXP will always be shown
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2872 for this Ibuffer session.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2873
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2874 \(fn REGEXP)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2875
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2876 (autoload 'ibuffer-forward-next-marked "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2877 Move forward by COUNT marked buffers (default 1).
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2878
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2879 If MARK is non-nil, it should be a character denoting the type of mark
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2880 to move by. The default is `ibuffer-marked-char'.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2881
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2882 If DIRECTION is non-nil, it should be an integer; negative integers
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2883 mean move backwards, non-negative integers mean move forwards.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2884
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2885 \(fn &optional COUNT MARK DIRECTION)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2886
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2887 (autoload 'ibuffer-backwards-next-marked "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2888 Move backwards by COUNT marked buffers (default 1).
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2889
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2890 If MARK is non-nil, it should be a character denoting the type of mark
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2891 to move by. The default is `ibuffer-marked-char'.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2892
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2893 \(fn &optional COUNT MARK)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2894
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2895 (autoload 'ibuffer-do-kill-lines "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2896 Hide all of the currently marked lines.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2897
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2898 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2899
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2900 (autoload 'ibuffer-jump-to-buffer "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2901 Move point to the buffer whose name is NAME.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2902
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2903 If called interactively, prompt for a buffer name and go to the
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2904 corresponding line in the Ibuffer buffer. If said buffer is in a
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2905 hidden group filter, open it.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2906
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2907 If `ibuffer-jump-offer-only-visible-buffers' is non-nil, only offer
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2908 visible buffers in the completion list. Calling the command with
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2909 a prefix argument reverses the meaning of that variable.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2910
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2911 \(fn NAME)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2912
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2913 (autoload 'ibuffer-diff-with-file "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2914 View the differences between marked buffers and their associated files.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2915 If no buffers are marked, use buffer at point.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2916 This requires the external program \"diff\" to be in your `exec-path'.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2917
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2918 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2919
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2920 (autoload 'ibuffer-copy-filename-as-kill "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2921 Copy filenames of marked buffers into the kill ring.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2922
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2923 The names are separated by a space.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2924 If a buffer has no filename, it is ignored.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2925
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2926 With no prefix arg, use the filename sans its directory of each marked file.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2927 With a zero prefix arg, use the complete filename of each marked file.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2928 With \\[universal-argument], use the filename of each marked file relative
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2929 to `ibuffer-default-directory' if non-nil, otherwise `default-directory'.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2930
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2931 You can then feed the file name(s) to other commands with \\[yank].
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2932
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2933 \(fn &optional ARG)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2934
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2935 (autoload 'ibuffer-mark-by-name-regexp "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2936 Mark all buffers whose name matches REGEXP.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2937
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2938 \(fn REGEXP)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2939
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2940 (autoload 'ibuffer-mark-by-mode-regexp "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2941 Mark all buffers whose major mode matches REGEXP.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2942
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2943 \(fn REGEXP)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2944
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2945 (autoload 'ibuffer-mark-by-file-name-regexp "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2946 Mark all buffers whose file name matches REGEXP.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2947
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2948 \(fn REGEXP)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2949
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2950 (autoload 'ibuffer-mark-by-mode "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2951 Mark all buffers whose major mode equals MODE.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2952
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2953 \(fn MODE)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2954
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2955 (autoload 'ibuffer-mark-modified-buffers "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2956 Mark all modified buffers.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2957
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2958 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2959
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2960 (autoload 'ibuffer-mark-unsaved-buffers "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2961 Mark all modified buffers that have an associated file.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2962
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2963 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2964
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2965 (autoload 'ibuffer-mark-dissociated-buffers "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2966 Mark all buffers whose associated file does not exist.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2967
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2968 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2969
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2970 (autoload 'ibuffer-mark-help-buffers "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2971 Mark buffers like *Help*, *Apropos*, *Info*.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2972
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2973 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2974
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2975 (autoload 'ibuffer-mark-compressed-file-buffers "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2976 Mark buffers whose associated file is compressed.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2977
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2978 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2979
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2980 (autoload 'ibuffer-mark-old-buffers "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2981 Mark buffers which have not been viewed in `ibuffer-old-time' hours.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2982
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2983 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2984
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2985 (autoload 'ibuffer-mark-special-buffers "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2986 Mark all buffers whose name begins and ends with '*'.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2987
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2988 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2989
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2990 (autoload 'ibuffer-mark-read-only-buffers "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2991 Mark all read-only buffers.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2992
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2993 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2994
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2995 (autoload 'ibuffer-mark-dired-buffers "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2996 Mark all `dired' buffers.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2997
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2998 \(fn)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
2999
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
3000 (autoload 'ibuffer-do-occur "ibuf-ext" "\
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
3001 View lines which match REGEXP in all marked buffers.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
3002 Optional argument NLINES says how many lines of context to display: it
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
3003 defaults to one.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
3004
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
3005 \(fn REGEXP &optional NLINES)" t nil)
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
3006
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
3007 ;;;***
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
3008
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
3009 ;;; End of automatically extracted autoloads.
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
3010
f02d30058310 Regenerate with extracted autoloads.
Glenn Morris <rgm@gnu.org>
parents: 104543
diff changeset
3011
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
3012 (provide 'ibuffer)
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
3013
49410
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
3014 (run-hooks 'ibuffer-load-hook)
798119a6859c * ibuffer.el (ibuffer-window-list): Remove.
John Paul Wallington <jpw@pobox.com>
parents: 48778
diff changeset
3015
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
3016 ;; Local Variables:
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
3017 ;; coding: iso-8859-1
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
3018 ;; End:
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
3019
87791
179da0eedc24 (mode): Pass the buffer to format-mode-line.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
3020 ;; arch-tag: 72581688-0603-4954-b8cf-837c700f62e8
42702
fb0b4579a45d Initial revision.
Colin Walters <walters@gnu.org>
parents:
diff changeset
3021 ;;; ibuffer.el ends here