From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: isearch multiple buffers Date: Sun, 20 Jul 2008 22:34:07 +0300 Organization: JURTA Message-ID: <87d4l81i80.fsf@jurta.org> References: <87odfcggvl.fsf@jurta.org> <87prp9bae0.fsf@jurta.org> <873am5xkhg.fsf@catnip.gol.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1216583506 8105 80.91.229.12 (20 Jul 2008 19:51:46 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 20 Jul 2008 19:51:46 +0000 (UTC) Cc: emacs-devel@gnu.org To: Miles Bader Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jul 20 21:52:34 2008 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1KKexM-0006ke-3S for ged-emacs-devel@m.gmane.org; Sun, 20 Jul 2008 21:52:32 +0200 Original-Received: from localhost ([127.0.0.1]:52855 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KKewT-0003cL-70 for ged-emacs-devel@m.gmane.org; Sun, 20 Jul 2008 15:51:37 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KKeus-0002sl-Ot for emacs-devel@gnu.org; Sun, 20 Jul 2008 15:49:58 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KKeuq-0002rJ-VE for emacs-devel@gnu.org; Sun, 20 Jul 2008 15:49:58 -0400 Original-Received: from [199.232.76.173] (port=40741 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KKeuq-0002r6-Nr for emacs-devel@gnu.org; Sun, 20 Jul 2008 15:49:56 -0400 Original-Received: from anti-4.kiev.sovam.com ([62.64.120.202]:55241) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KKeul-00016H-8u; Sun, 20 Jul 2008 15:49:51 -0400 Original-Received: from [83.170.232.243] (helo=smtp.svitonline.com) by anti-4.kiev.sovam.com with esmtp (Exim 4.67) (envelope-from ) id 1KKetU-0002D1-PT; Sun, 20 Jul 2008 22:49:48 +0300 In-Reply-To: <873am5xkhg.fsf@catnip.gol.com> (Miles Bader's message of "Sun, 20 Jul 2008 13:11:55 +0900") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (x86_64-pc-linux-gnu) X-Scanner-Signature: eee30a1c0c3b578efc84796d9b7c2682 X-DrWeb-checked: yes X-SpamTest-Envelope-From: juri@jurta.org X-SpamTest-Group-ID: 00000000 X-SpamTest-Header: Trusted X-SpamTest-Info: Profiles 4378 [July 20 2008] X-SpamTest-Info: {received from trusted relay: common white list} X-SpamTest-Info: {HEADERS: header Content-Type found without required header Content-Transfer-Encoding} X-SpamTest-Method: white ip list X-SpamTest-Rate: 10 X-SpamTest-Status: Trusted X-SpamTest-Status-Extended: trusted X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0278], KAS30/Release X-detected-kernel: by monty-python.gnu.org: FreeBSD 6.x (1) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:101027 Archived-At: > It would be nice to have this in ibuffer too... Done in the patch below where I also renamed too long function name `multi-isearch-forward-buffers' to `multi-isearch-buffers' (and `multi-isearch-forward-files' to `multi-isearch-files'). As for key bindings, I don't know what does `A' in Dired stand for, but it seems it has mnemonics for _a_ll files/buffers. By analogy, I've added two key bindings to ibuffer with the key `a' inside: M-s a C-s ibuffer-do-isearch M-s a M-C-s ibuffer-do-isearch-regexp `C-s' and `M-C-s' at the end of the key sequence are very convenient. They cause the feeling that these commands were run by typing standard Isearch keys `C-s' and `M-C-s', and the user can immediately type the same `C-s' again to repeat the search with the last search string and so on. Index: lisp/ibuf-ext.el =================================================================== RCS file: /sources/emacs/emacs/lisp/ibuf-ext.el,v retrieving revision 1.71 diff -c -r1.71 ibuf-ext.el *** lisp/ibuf-ext.el 27 Jun 2008 10:34:50 -0000 1.71 --- lisp/ibuf-ext.el 20 Jul 2008 19:33:48 -0000 *************** *** 408,413 **** --- 408,431 ---- :modifier-p :maybe) (revert-buffer t t)) + ;;;###autoload (autoload 'ibuffer-do-isearch "ibuf-ext") + (define-ibuffer-op ibuffer-do-isearch () + "Perform a `isearch-forward' in marked buffers." + (:interactive () + :opstring "searched in" + :complex t + :modifier-p :maybe) + (multi-isearch-buffers (ibuffer-get-marked-buffers))) + + ;;;###autoload (autoload 'ibuffer-do-isearch-regexp "ibuf-ext") + (define-ibuffer-op ibuffer-do-isearch-regexp () + "Perform a `isearch-forward-regexp' in marked buffers." + (:interactive () + :opstring "searched regexp in" + :complex t + :modifier-p :maybe) + (multi-isearch-buffers-regexp (ibuffer-get-marked-buffers))) + ;;;###autoload (autoload 'ibuffer-do-replace-regexp "ibuf-ext") (define-ibuffer-op replace-regexp (from-str to-str) "Perform a `replace-regexp' in marked buffers." Index: lisp/ibuffer.el =================================================================== RCS file: /sources/emacs/emacs/lisp/ibuffer.el,v retrieving revision 1.107 diff -c -r1.107 ibuffer.el *** lisp/ibuffer.el 2 Jul 2008 13:28:01 -0000 1.107 --- lisp/ibuffer.el 20 Jul 2008 19:33:05 -0000 *************** *** 410,415 **** --- 410,417 ---- (define-key map (kbd "=") 'ibuffer-diff-with-file) (define-key map (kbd "j") 'ibuffer-jump-to-buffer) (define-key map (kbd "M-g") 'ibuffer-jump-to-buffer) + (define-key map (kbd "M-s a C-s") 'ibuffer-do-isearch) + (define-key map (kbd "M-s a M-C-s") 'ibuffer-do-isearch-regexp) (define-key map (kbd "DEL") 'ibuffer-unmark-backward) (define-key map (kbd "M-DEL") 'ibuffer-unmark-all) (define-key map (kbd "* *") 'ibuffer-unmark-all) *************** *** 2376,2381 **** --- 2378,2385 ---- '\\[ibuffer-do-revert]' - Revert the marked buffers. '\\[ibuffer-do-toggle-read-only]' - Toggle read-only state of marked buffers. '\\[ibuffer-do-delete]' - Kill the marked buffers. + '\\[ibuffer-do-isearch]' - Do incremental search in the marked buffers. + '\\[ibuffer-do-isearch-regexp]' - Isearch for regexp in the marked buffers. '\\[ibuffer-do-replace-regexp]' - Replace by regexp in each of the marked buffers. '\\[ibuffer-do-query-replace]' - Query replace in each of the marked buffers. -- Juri Linkov http://www.jurta.org/emacs/