help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: launching a perl script


From: Mart Zirnask
Subject: Re: launching a perl script
Date: Thu, 22 Sep 2011 18:19:17 +0300

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]