* launching a perl script @ 2011-09-21 12:54 Mart Zirnask 2011-09-21 13:01 ` Mart Zirnask ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Mart Zirnask @ 2011-09-21 12:54 UTC (permalink / raw) To: help-gnu-emacs Hello everybody, Probably an issue not very complicated: when I try to launch an external Perl script ("tags#.pl") from Emacs, providing it with the current buffer name, the editor freezes. I'm on Windows and here's what I have in my .emacs: -------------------------------------------------------------------- ;; Perl tagcloud (global-set-key (kbd "<f2>") (lambda () (interactive) (shell-command (concat "perl ~/.emacs.d/tags#.pl " buffer-file-name)))) -------------------------------------------------------------------- I'm not a programmer and I started using Emacs for text editing only recently. What's wrong? Thanks for any help, best, Mart Zirnask, from Estonia ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: launching a perl script 2011-09-21 12:54 launching a perl script Mart Zirnask @ 2011-09-21 13:01 ` Mart Zirnask 2011-09-22 4:40 ` XeCycle 2011-09-22 8:05 ` Andreas Röhler 2011-09-22 14:46 ` PJ Weisberg 2 siblings, 1 reply; 7+ messages in thread From: Mart Zirnask @ 2011-09-21 13:01 UTC (permalink / raw) To: help-gnu-emacs Sorry for spamming, I actually provided the file name as "c:/tags#.pl" but this gave the same effect -- Emacs freezes. Thanks for help, Best, MZ 2011/9/21 Mart Zirnask <martzirnask@gmail.com>: > Hello everybody, > > Probably an issue not very complicated: when I try to launch an > external Perl script ("tags#.pl") from Emacs, providing it with the > current buffer name, the editor freezes. > > I'm on Windows and here's what I have in my .emacs: > > -------------------------------------------------------------------- > ;; Perl tagcloud > (global-set-key (kbd "<f2>") > (lambda () > (interactive) > (shell-command (concat "perl > ~/.emacs.d/tags#.pl " buffer-file-name)))) > -------------------------------------------------------------------- > > I'm not a programmer and I started using Emacs for text editing only > recently. What's wrong? > > Thanks for any help, > best, > Mart Zirnask, > from Estonia > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: launching a perl script 2011-09-21 13:01 ` Mart Zirnask @ 2011-09-22 4:40 ` XeCycle 0 siblings, 0 replies; 7+ messages in thread From: XeCycle @ 2011-09-22 4:40 UTC (permalink / raw) To: help-gnu-emacs [-- Attachment #1: Type: text/plain, Size: 1407 bytes --] Mart Zirnask <martzirnask@gmail.com> writes: > Sorry for spamming, > I actually provided the file name as "c:/tags#.pl" but this gave the > same effect -- Emacs freezes. > > Thanks for help, > Best, > MZ > > 2011/9/21 Mart Zirnask <martzirnask@gmail.com>: >> Hello everybody, >> >> Probably an issue not very complicated: when I try to launch an >> external Perl script ("tags#.pl") from Emacs, providing it with the >> current buffer name, the editor freezes. >> >> I'm on Windows and here's what I have in my .emacs: >> >> -------------------------------------------------------------------- >> ;; Perl tagcloud >> (global-set-key (kbd "<f2>") >> (lambda () >> (interactive) >> (shell-command (concat "perl >> ~/.emacs.d/tags#.pl " buffer-file-name)))) >> -------------------------------------------------------------------- >> >> I'm not a programmer and I started using Emacs for text editing only >> recently. What's wrong? >> >> Thanks for any help, >> best, >> Mart Zirnask, >> from Estonia Does that script reads any standard input? To interact with a subprocess, see comint-mode. -- Carl Lei (XeCycle) Department of Physics, Shanghai Jiao Tong University OpenPGP public key: 7795E591 Fingerprint: 1FB6 7F1F D45D F681 C845 27F7 8D71 8EC4 7795 E591 [-- Attachment #2: Type: application/pgp-signature, Size: 489 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: launching a perl script 2011-09-21 12:54 launching a perl script Mart Zirnask 2011-09-21 13:01 ` Mart Zirnask @ 2011-09-22 8:05 ` Andreas Röhler 2011-09-22 14:46 ` PJ Weisberg 2 siblings, 0 replies; 7+ messages in thread From: Andreas Röhler @ 2011-09-22 8:05 UTC (permalink / raw) To: help-gnu-emacs Am 21.09.2011 14:54, schrieb Mart Zirnask: > Hello everybody, > > Probably an issue not very complicated: when I try to launch an > external Perl script ("tags#.pl") from Emacs, providing it with the > current buffer name, the editor freezes. > > I'm on Windows and here's what I have in my .emacs: > > -------------------------------------------------------------------- > ;; Perl tagcloud > (global-set-key (kbd "<f2>") > (lambda () > (interactive) > (shell-command (concat "perl > ~/.emacs.d/tags#.pl " buffer-file-name)))) > -------------------------------------------------------------------- > > I'm not a programmer and I started using Emacs for text editing only > recently. What's wrong? > > Thanks for any help, > best, > Mart Zirnask, > from Estonia > > Hi, assume the file is locked by your buffer, so if perl trys to change, it fails. BTW open Emacs and try to access the file, see what happens. If you want to change the current content, shell-command-on-region should DTRT. HTH, Andreas ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: launching a perl script 2011-09-21 12:54 launching a perl script Mart Zirnask 2011-09-21 13:01 ` Mart Zirnask 2011-09-22 8:05 ` Andreas Röhler @ 2011-09-22 14:46 ` PJ Weisberg 2011-09-22 15:19 ` Mart Zirnask 2 siblings, 1 reply; 7+ messages in thread From: PJ Weisberg @ 2011-09-22 14:46 UTC (permalink / raw) To: Mart Zirnask; +Cc: help-gnu-emacs@gnu.org [-- Attachment #1: Type: text/plain, Size: 1057 bytes --] Emacs isn't so much "frozen" as it is "waiting for the perl script to finish". If you just want to run the script in the background, put a " &" at the end of the command string. On Wednesday, September 21, 2011, Mart Zirnask <martzirnask@gmail.com> wrote: > Hello everybody, > > Probably an issue not very complicated: when I try to launch an > external Perl script ("tags#.pl") from Emacs, providing it with the > current buffer name, the editor freezes. > > I'm on Windows and here's what I have in my .emacs: > > -------------------------------------------------------------------- > ;; Perl tagcloud > (global-set-key (kbd "<f2>") > (lambda () > (interactive) > (shell-command (concat "perl > ~/.emacs.d/tags#.pl " buffer-file-name)))) > -------------------------------------------------------------------- > > I'm not a programmer and I started using Emacs for text editing only > recently. What's wrong? > > Thanks for any help, > best, > Mart Zirnask, > from Estonia > > -- -PJ [-- Attachment #2: Type: text/html, Size: 1385 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: launching a perl script 2011-09-22 14:46 ` PJ Weisberg @ 2011-09-22 15:19 ` Mart Zirnask 2011-09-22 16:02 ` Mart Zirnask 0 siblings, 1 reply; 7+ messages in thread From: Mart Zirnask @ 2011-09-22 15:19 UTC (permalink / raw) To: andreas.roehler, help-gnu-emacs Hi, Thanks for advice. shell-command-on-region worked, but also provided the following in minibuffer: ------------------- "tagcloud: Wrong number of arguments: #[(start end command &optional output-buffer replace error-buffer display-error-buffer) " [error-buffer small-temporary-file-directory temporary-file-directory exit-status error-file replace make-temp-file expand-file-name "scor" nil ...] 9 1940772 (let (string) (unless (mark) (error "The mark is not set now, so there is no region")) (setq string (read-shell-command "Shell command on region: ")) (list (region-beginning) (region-end) string current-prefix-arg current-prefix-arg shell-command-default-error-buffer t))], 1 -------------------- Basically, what I want to do is to run this great script through Emacs: http://perlmonks.org/?node_id=707360 Everything seems to work fine when I hand-type the command ("perl tags#.pl current-buffer-filename.txt") in eshell or Windows native shell launched through Emacs. But I'd like to assign the script to a hotkey (using the current buffer as input for Perl), and this is where I'm facing problems at the moment. Might this somehow be related to Windows' filenames (because they include spaces)? However, a workaround would be binding my hotkey to the eshell command. But I haven't found reference for doing this. So, what should I put into my .emacs in order to launch the script via a hotkey using eshell? Thanks, Mart, in trouble, but still ------------------------------------------------- Am 21.09.2011 14:54, schrieb Mart Zirnask: Hello everybody, Probably an issue not very complicated: when I try to launch an external Perl script ("tags#.pl") from Emacs, providing it with the current buffer name, the editor freezes. I'm on Windows and here's what I have in my .emacs: -------------------------------------------------------------------- ;; Perl tagcloud (global-set-key (kbd "<f2>") (lambda () (interactive) (shell-command (concat "perl ~/.emacs.d/tags#.pl " buffer-file-name)))) -------------------------------------------------------------------- I'm not a programmer and I started using Emacs for text editing only recently. What's wrong? Thanks for any help, best, Mart Zirnask, from Estonia ----------------------------- Hi, assume the file is locked by your buffer, so if perl trys to change, it fails. BTW open Emacs and try to access the file, see what happens. If you want to change the current content, shell-command-on-region should DTRT. HTH, Andreas ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: launching a perl script 2011-09-22 15:19 ` Mart Zirnask @ 2011-09-22 16:02 ` Mart Zirnask 0 siblings, 0 replies; 7+ messages in thread From: Mart Zirnask @ 2011-09-22 16:02 UTC (permalink / raw) To: andreas.roehler, help-gnu-emacs Okay, I got everything working using "compile" instead :) Like this: ----------------- ;;; --- Perl tag-cloud --- ;;; (defun tagcloud () (interactive) (compile (concat "perl c:/tags.pl " (shell-quote-argument (buffer-file-name)) " &"))) (global-set-key (kbd "<f2>") 'tagcloud) ; hotkey: f2 ----------------- Now, a question: how could I assign the same hotkey (F2) to "refresh" the compilaton when it's running? Namely, the script generates a tag cloud based on a text file. But when I happen to change something in the file, the cloud isn't updated automatically. I need to kill the Perl process and start everything anew in order to get a "fresh cloud". A workaround for this would be great. Thanks for your help! I'm an absolute newbie but, really, Emacs rocks! Best, Mart 2011/9/22 Mart Zirnask <martzirnask@gmail.com>: > Hi, > > Thanks for advice. > shell-command-on-region worked, but also provided the following in minibuffer: > > ------------------- > "tagcloud: Wrong number of arguments: #[(start end command &optional > output-buffer replace error-buffer display-error-buffer) " > > [error-buffer small-temporary-file-directory temporary-file-directory > exit-status error-file replace make-temp-file expand-file-name "scor" > nil ...] 9 1940772 (let (string) (unless (mark) (error "The mark is > not set now, so there is no region")) (setq string (read-shell-command > "Shell command on region: ")) (list (region-beginning) (region-end) > string current-prefix-arg current-prefix-arg > shell-command-default-error-buffer t))], 1 > -------------------- > > Basically, what I want to do is to run this great script through > Emacs: http://perlmonks.org/?node_id=707360 > > Everything seems to work fine when I hand-type the command ("perl > tags#.pl current-buffer-filename.txt") in eshell or Windows native > shell launched through Emacs. But I'd like to assign the script to a > hotkey (using the current buffer as input for Perl), and this is where > I'm facing problems at the moment. Might this somehow be related to > Windows' filenames (because they include spaces)? > > However, a workaround would be binding my hotkey to the eshell > command. But I haven't found reference for doing this. So, what should > I put into my .emacs in order to launch the script via a hotkey using > eshell? > > Thanks, > > Mart, > in trouble, but still > > ------------------------------------------------- > Am 21.09.2011 14:54, schrieb Mart Zirnask: > > Hello everybody, > > Probably an issue not very complicated: when I try to launch an > external Perl script ("tags#.pl") from Emacs, providing it with the > current buffer name, the editor freezes. > > I'm on Windows and here's what I have in my .emacs: > > -------------------------------------------------------------------- > ;; Perl tagcloud > (global-set-key (kbd "<f2>") > (lambda () > (interactive) > (shell-command (concat "perl > ~/.emacs.d/tags#.pl " buffer-file-name)))) > -------------------------------------------------------------------- > > I'm not a programmer and I started using Emacs for text editing only > recently. What's wrong? > > Thanks for any help, > best, > Mart Zirnask, > from Estonia > > ----------------------------- > > Hi, > > > assume the file is locked by your buffer, so if perl trys to change, it fails. > > BTW open Emacs and try to access the file, see what happens. > > > If you want to change the current content, shell-command-on-region should DTRT. > > HTH, > > Andreas > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-09-22 16:02 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-09-21 12:54 launching a perl script Mart Zirnask 2011-09-21 13:01 ` Mart Zirnask 2011-09-22 4:40 ` XeCycle 2011-09-22 8:05 ` Andreas Röhler 2011-09-22 14:46 ` PJ Weisberg 2011-09-22 15:19 ` Mart Zirnask 2011-09-22 16:02 ` Mart Zirnask
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).