From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Kevin Rodgers Newsgroups: gmane.emacs.help Subject: Re: igrep on remote files with tramp? Date: Tue, 02 Aug 2005 14:35:13 -0600 Message-ID: References: <0001HW.BF12DC880234B350F0305550@news.ispnetbilling.com> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1123016704 16894 80.91.229.2 (2 Aug 2005 21:05:04 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 2 Aug 2005 21:05:04 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue Aug 02 23:05:03 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1E03ux-0006Qc-20 for geh-help-gnu-emacs@m.gmane.org; Tue, 02 Aug 2005 23:03:19 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1E03xf-0005Wl-AE for geh-help-gnu-emacs@m.gmane.org; Tue, 02 Aug 2005 17:06:07 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1E03tA-0002am-Eu for help-gnu-emacs@gnu.org; Tue, 02 Aug 2005 17:01:28 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1E03sr-0002Qk-Fc for help-gnu-emacs@gnu.org; Tue, 02 Aug 2005 17:01:17 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1E03sp-0002Jq-Es for help-gnu-emacs@gnu.org; Tue, 02 Aug 2005 17:01:07 -0400 Original-Received: from [80.91.229.2] (helo=ciao.gmane.org) by monty-python.gnu.org with esmtp (TLS-1.0:RSA_AES_128_CBC_SHA:16) (Exim 4.34) id 1E03iD-00037Q-SB for help-gnu-emacs@gnu.org; Tue, 02 Aug 2005 16:50:10 -0400 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1E03UG-00039h-VO for help-gnu-emacs@gnu.org; Tue, 02 Aug 2005 22:35:45 +0200 Original-Received: from 207.167.42.60 ([207.167.42.60]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 02 Aug 2005 22:35:44 +0200 Original-Received: from ihs_4664 by 207.167.42.60 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 02 Aug 2005 22:35:44 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-To: help-gnu-emacs@gnu.org Original-Lines: 82 Original-X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: 207.167.42.60 User-Agent: Mozilla Thunderbird 0.9 (X11/20041105) X-Accept-Language: en-us, en In-Reply-To: <0001HW.BF12DC880234B350F0305550@news.ispnetbilling.com> X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:28364 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:28364 Daniel Berdine wrote: > On Thu, 28 Jul 2005 15:28:54 -0400, Kevin Rodgers wrote > (in article ): > > igrep only supports ange-ftp (and efs) to the extent that the > > igrep-visited-files and Buffer-menu-igrep commands explicitly ignore > > remote files. > > > > To properly support remote files, igrep would need to invoke the grep > > command in a remote shell. I know there has been discussion about > > whether Emacs should implement process handlers, so that tramp could run > > programs on a remote host when invoked from a buffer visiting a remote > > file. But I don't know what was decided and implemented (if anything). > > Ok, thanks. > > I'm obviously ignorant here, but why is this so different than, say, > incremental searches across several remote files with tramp? I'm completely ignorant about tramp. Do you mean incremental search across several buffers visiting remote files via tramp? Or does tramp provide its own incremental search command? > Can't a local igrep be run on the local tmp files that get used for so > many other purposes? I don't know how tramp works, but ange-ftp evidently does not leave the local tmp files on disk once their contents have been inserted into the buffer. > In any case, being able to run remote processes with tramp would be great. It turns out that ange-ftp provides file name handlers for shell-command, which uses remote-shell-program (e.g. /bin/remsh) to execute the command on the other host when visiting a remote file or directory. So I would be suprised if tramp does not provide the same functionality when you use e.g. `! grep foo *.java'. But igrep and grep are based on compile, which uses start-process instead of shell-command. But since tramp provides commands for compilation of files on remote hosts (see http://www.gnu.org/software/tramp/#Compilation), perhaps tramp-util.el just needs something like this (cribbed from tramp-compile): (defun tramp-grep (command) "Run grep COMMAND on remote host." (interactive (list (read-from-minibuffer "Run grep (like this): " (or (car grep-history) grep-command) nil nil 'grep-history))) (setq grep-command command) (unless (string-match "[ \t]*&[ \t]*\\'" command) (setq command (concat command "&"))) (save-some-buffers (not compilation-ask-about-save) nil) (let ((d default-directory)) (save-excursion (pop-to-buffer (get-buffer-create "*grep*") t) (erase-buffer) (setq default-directory d))) (tramp-handle-shell-command command (get-buffer "*grep*")) (pop-to-buffer (get-buffer "*grep*")) (compilation-mode) (compilation-minor-mode 1) (tramp-minor-mode 1)) (tramp-remap-command 'grep 'tramp-grep) (when (fboundp 'add-menu-button) (funcall 'add-menu-button '("Tools" "Grep") ["Search Files (Grep)..." (command-execute (if tramp-minor-mode 'tramp-grep 'grep)) :active (fboundp 'grep)])) > I've frequently wished I could do this with gdb within emacs, for instance. You are not alone. -- Kevin Rodgers